import { DocumentNode, GraphQLSchema, BuildSchemaOptions } from 'graphql'; import { GraphQLSchemaValidationOptions } from 'graphql/type/schema'; import { GraphQLParseOptions } from './Interfaces'; export interface Source { document?: DocumentNode; schema?: GraphQLSchema; rawSDL?: string; location?: string; } export declare type SingleFileOptions = GraphQLParseOptions & GraphQLSchemaValidationOptions & BuildSchemaOptions & { 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;