import * as graphql from 'graphql'; declare type PromiseOrValue = Promise | T; declare type Maybe = T | null | undefined; export declare type OutputType = Scalar | Enum | ObjectType | Union | Interface | ListType | NonNullType; interface ListType extends List> { } interface NonNullType extends NonNull> { } export declare type InputType = Scalar | Enum | InputObject | ListInputType | NonNullInputType; interface ListInputType extends ListInput> { } interface NonNullInputType extends NonNullInput> { } export declare type AllType = OutputType | InputType; export declare type Scalar = { kind: 'Scalar'; graphqlTypeConfig: graphql.GraphQLScalarTypeConfig; } | { kind: 'Scalar'; builtInType: graphql.GraphQLScalarType; }; export declare type Enum = { kind: 'Enum'; name: string; description?: string; values: Array>; }; export declare type EnumValue = { name: string; description?: string; deprecationReason?: string; value: Src; }; export declare type List = { kind: 'List'; ofType: OutputType; }; export declare type NonNull = { kind: 'NonNull'; ofType: OutputType; }; export declare type ListInput = { kind: 'ListInput'; ofType: InputType; }; export declare type NonNullInput = { kind: 'NonNullInput'; ofType: InputType; }; export declare type Argument = { kind: 'Argument'; type: InputType; description?: string; }; export declare type DefaultArgument = { kind: 'DefaultArgument'; type: InputType; description?: string; default: Src; }; export declare type ArgMap = { [K in keyof T]: DefaultArgument | Argument; }; export declare type ArgMapValue = TArg extends DefaultArgument ? Src : TArg extends Argument ? Src extends null ? Maybe : Src : never; export declare type TOfArgMap = { [K in keyof TArgMap]: ArgMapValue; }; export declare type Field = { kind: 'Field'; name: string; description?: string; type: OutputType; args: ArgMap; deprecationReason?: string; resolve: (src: Src, args: TOfArgMap>, ctx: Ctx, info: graphql.GraphQLResolveInfo) => Out | Promise; extensions?: Record; }; export declare type AbstractField = { kind: 'AbstractField'; name: string; description?: string; deprecationReason?: string; type: OutputType; }; export declare type ObjectType = { kind: 'ObjectType'; name: string; description?: string; deprecationReason?: string; interfaces: Array>; fieldsFn: () => Array>; isTypeOf?: (src: any, ctx: Ctx, info: graphql.GraphQLResolveInfo) => boolean | Promise; extensions?: Record; }; export declare type InputField = { type: InputType; description?: string; }; export declare type InputFieldMap = { [K in keyof T]: InputField; }; export declare type InputObject = { kind: 'InputObject'; name: string; description?: string; fieldsFn: () => InputFieldMap; }; declare type ResolveType = (src: Src, ctx: Ctx, info: graphql.GraphQLResolveInfo) => PromiseOrValue | string>>; export declare type Interface = { kind: 'Interface'; name: string; description?: string; interfaces: Array>; fieldsFn: () => Array>; resolveType?: ResolveType; }; export declare type Union = { kind: 'Union'; name: string; types: Array>; resolveType: ResolveType; }; export declare type SubscriptionObject = { kind: 'SubscriptionObject'; name: string; fields: Array>; }; export declare type SubscriptionField = { kind: 'SubscriptionField'; name: string; description?: string; type: OutputType; args: ArgMap; deprecationReason?: string; subscribe: (source: RootSrc, args: TOfArgMap>, ctx: Ctx, info: graphql.GraphQLResolveInfo) => PromiseOrValue>; resolve?: (source: RootSrc, args: TOfArgMap>, ctx: Ctx, info: graphql.GraphQLResolveInfo) => PromiseOrValue; }; export declare type Schema = { query: ObjectType; mutation?: ObjectType; subscription?: SubscriptionObject; types?: ObjectType[]; directives?: graphql.GraphQLDirective[]; }; export {};