export type ObjMap = { [key: string]: T }; export type Thunk = (() => T) | T; export type MaybePromise = Promise | T; export type DirectiveArgs = { [key: string]: any }; export type ExtensionsDirective = { name: string; args: DirectiveArgs; }; export type Extensions = { [key: string]: any; directives?: ExtensionsDirective[]; };