export type ResolversUnknown = { [x: string]: { [x: string]: (input: InputType, args?: any) => any | undefined | Promise; }; }; export type DirectivesUnknown = { [x: string]: DirectiveType; }; export type ObjectsUnknown = { resolvers: ResolversUnknown; directives?: DirectivesUnknown; }; export interface CustomHandler { (input: InputType, args: ArgumentsType extends { args: infer R; } ? R : never): any; } export interface CustomMiddlewareHandler { (input: InputType): InputType; } export type InferAdapterType) => any> = Parameters[0]['resolvers'] extends { [x: string]: { [y: string]: infer R; }; } ? R extends (...args: any[]) => any ? Parameters[0] : never : never; export type InferAdapterTypeDirectives) => any> = Parameters[0]['directives'] extends { [x: string]: infer R; } | undefined ? R : never;