import { DocumentNode, GraphQLSchema, ParseOptions, BuildSchemaOptions } from 'graphql'; import { GraphQLSchemaValidationOptions } from 'graphql/type/schema'; export declare class Source { document?: DocumentNode; schema?: GraphQLSchema; rawSDL?: string; location?: string; constructor({ document, location, schema }: { document?: DocumentNode; location?: string; schema?: GraphQLSchema; }); } export declare type SingleFileOptions = ParseOptions & GraphQLSchemaValidationOptions & BuildSchemaOptions & { noRequire?: boolean; cwd?: string; }; export declare type WithList = T | T[]; export declare type ElementOf = TList extends Array ? TElement : never; export declare type SchemaPointer = WithList; export declare type SchemaPointerSingle = ElementOf; export declare type DocumentGlobPathPointer = string; export declare type DocumentPointer = WithList; export declare type DocumentPointerSingle = ElementOf; export interface Loader { loaderId(): string; canLoad(pointer: TPointer, options?: TOptions): Promise; canLoadSync?(pointer: TPointer, options?: TOptions): boolean; load(pointer: TPointer, options?: TOptions): Promise; loadSync?(pointer: TPointer, options?: TOptions): Source | never; } export declare type SchemaLoader = Loader; export declare type DocumentLoader = Loader; export declare type UniversalLoader = Loader;