import type { Diagnostic as DiagnosticType, CompletionItem as CompletionItemType } from 'vscode-languageserver-types'; import type { ASTNode, GraphQLSchema } from 'graphql'; import type { DocumentNode, FragmentDefinitionNode, NamedTypeNode, TypeDefinitionNode, NameNode } from 'graphql/language'; import type { GraphQLArgument, GraphQLEnumValue, GraphQLField, GraphQLInputFieldMap, GraphQLInterfaceType, GraphQLObjectType, GraphQLType } from 'graphql/type/definition'; import type { GraphQLDirective } from 'graphql/type/directives'; export declare type Maybe = T | null | undefined; import type { GraphQLConfig, GraphQLProjectConfig, GraphQLExtensionDeclaration } from 'graphql-config'; export type { GraphQLConfig, GraphQLProjectConfig, GraphQLExtensionDeclaration, }; export interface GraphQLCache { getGraphQLConfig: () => GraphQLConfig; getProjectForFile: (uri: string) => GraphQLProjectConfig; getObjectTypeDependencies: (query: string, fragmentDefinitions: Map) => Promise; getObjectTypeDependenciesForAST: (parsedQuery: ASTNode, fragmentDefinitions: Map) => Promise; getObjectTypeDefinitions: (graphQLConfig: GraphQLProjectConfig) => Promise>; updateObjectTypeDefinition: (rootDir: Uri, filePath: Uri, contents: CachedContent[]) => Promise; updateObjectTypeDefinitionCache: (rootDir: Uri, filePath: Uri, exists: boolean) => Promise; getFragmentDependencies: (query: string, fragmentDefinitions: Maybe>) => Promise; getFragmentDependenciesForAST: (parsedQuery: ASTNode, fragmentDefinitions: Map) => Promise; getFragmentDefinitions: (graphQLConfig: GraphQLProjectConfig) => Promise>; updateFragmentDefinition: (rootDir: Uri, filePath: Uri, contents: CachedContent[]) => Promise; updateFragmentDefinitionCache: (rootDir: Uri, filePath: Uri, exists: boolean) => Promise; getSchema: (appName?: string, queryHasExtensions?: boolean) => Promise; } export interface IPosition { line: number; character: number; setLine(line: number): void; setCharacter(character: number): void; lessThanOrEqualTo(position: IPosition): boolean; } export interface IRange { start: IPosition; end: IPosition; setEnd(line: number, character: number): void; setStart(line: number, character: number): void; containsPosition(position: IPosition): boolean; } export declare type CachedContent = { query: string; range: IRange | null; }; export declare type Uri = string; export declare type GraphQLFileMetadata = { filePath: Uri; size: number; mtime: number; }; export declare type GraphQLFileInfo = { filePath: Uri; content: string; asts: DocumentNode[]; queries: CachedContent[]; size: number; mtime: number; }; export declare type AllTypeInfo = { type: Maybe; parentType: Maybe; inputType: Maybe; directiveDef: Maybe; fieldDef: Maybe>; enumValue: Maybe; argDef: Maybe; argDefs: Maybe; objectFieldDefs: Maybe; interfaceDef: Maybe; objectTypeDef: Maybe; }; export declare type FragmentInfo = { filePath?: Uri; content: string; definition: FragmentDefinitionNode; }; export declare type NamedTypeInfo = { filePath?: Uri; content: string; definition: NamedTypeNode; }; export declare type ObjectTypeInfo = { filePath?: Uri; content: string; definition: TypeDefinitionNode; }; export declare type Diagnostic = DiagnosticType; export declare type CompletionItemBase = { label: string; isDeprecated?: boolean; }; export declare type CompletionItem = CompletionItemType & { isDeprecated?: boolean; documentation?: string | null; deprecationReason?: string | null; type?: GraphQLType; }; export declare type Definition = { path: Uri; position: IPosition; range?: IRange; id?: string; name?: string; language?: string; projectRoot?: Uri; }; export declare type TokenKind = 'keyword' | 'class-name' | 'constructor' | 'method' | 'param' | 'string' | 'whitespace' | 'plain' | 'type'; export declare type TextToken = { kind: TokenKind; value: string | NameNode; }; export declare type TokenizedText = TextToken[]; export declare type OutlineTree = { plainText?: string; tokenizedText?: TokenizedText; representativeName?: string; kind: string; startPosition: IPosition; endPosition?: IPosition; children: OutlineTree[]; }; export declare type Outline = { outlineTrees: OutlineTree[]; }; export interface FileEvent { uri: string; type: FileChangeType; } export declare const FileChangeTypeKind: { Created: number; Changed: number; Deleted: number; }; export declare type FileChangeTypeKind = { Created: 1; Changed: 2; Deleted: 3; }; export declare type FileChangeTypeKeys = keyof FileChangeTypeKind; export declare type FileChangeType = FileChangeTypeKind[FileChangeTypeKeys]; //# sourceMappingURL=index.d.ts.map