import type { GraphQLSchema } from 'graphql'; import type { SchemaManagerHost } from './types'; export type SchemaBuildErrorInfo = { message: string; fileName: string; fileContent: string; locations?: ReadonlyArray<{ line: number; character: number; }>; }; export type OnChangeCallback = (errors: SchemaBuildErrorInfo[] | null, schema: GraphQLSchema | null) => void; export declare abstract class SchemaManager { protected _host: SchemaManagerHost; private _onChanges; private _extensionManager; constructor(_host: SchemaManagerHost); abstract getBaseSchema(): GraphQLSchema | null; protected abstract waitBaseSchema(): Promise; protected abstract startWatch(interval?: number): void; start(interval?: number): void; getSchema(): { schema: GraphQLSchema | null; errors: SchemaBuildErrorInfo[] | null; }; waitSchema(): Promise<{ schema: GraphQLSchema | null; errors: SchemaBuildErrorInfo[] | null; }>; registerOnChange(cb: OnChangeCallback): () => void; protected emitChange(): void; protected log(msg: string): void; } export declare class NoopSchemaManager extends SchemaManager { startWatch(): void; waitBaseSchema(): Promise; getBaseSchema(): null; }