export interface TypeResolver { serialize: (value: any) => any; parseValue: (value: any) => any; parseLiteral: (ast: any) => any; } export interface ListResolver { Type: { [key: string]: TypeResolver; }; Query: { find: ({ document, where, order, pagination }: { document: any; where: any; order: any; pagination: any; }) => Promise; findOne: ({ document, where }: { document: any; where: any; }) => Promise; fields: { [field: string]: (value: any, document: any) => Promise; }; }; Mutation: { create: (value: any, document: any) => Promise; update: (value: any, document: any) => Promise; delete: (value: any, document: any) => Promise; fields: { [field: string]: (value: any, document: any) => Promise; }; }; } export interface MapResolver { Type: { [key: string]: TypeResolver; }; Query: { get: ({ document }: { document: any; }) => Promise; fields: { [field: string]: (value: any, document: any) => Promise; }; }; Mutation: { set: (value: any, document: any) => Promise; fields: { [field: string]: (value: any, document: any) => Promise; }; }; } export interface ResolverMap { [key: string]: ListResolver | MapResolver; }