import { DocumentNode, FragmentSpreadNode, NamedTypeNode, FieldNode, ArgumentNode } from 'graphql';
import { CompletionItem, Diagnostic, Uri, IPosition, Outline, HoverConfig, DefinitionQueryResponse } from 'graphql-language-service';
import type { GraphQLCache } from './GraphQLCache';
import { GraphQLConfig, GraphQLProjectConfig } from 'graphql-config';
import type { Logger } from 'vscode-jsonrpc';
import { Hover, SymbolInformation } from 'vscode-languageserver-types';
export declare class GraphQLLanguageService {
    _graphQLCache: GraphQLCache;
    _graphQLConfig: GraphQLConfig;
    _logger: Logger;
    constructor(cache: GraphQLCache, logger: Logger);
    getConfigForURI(uri: Uri): GraphQLProjectConfig | undefined;
    getDiagnostics(document: string, uri: Uri, isRelayCompatMode?: boolean): Promise<Array<Diagnostic>>;
    getAutocompleteSuggestions(query: string, position: IPosition, filePath: Uri): Promise<Array<CompletionItem>>;
    getHoverInformation(query: string, position: IPosition, filePath: Uri, options?: HoverConfig): Promise<Hover['contents']>;
    getDefinition(query: string, position: IPosition, filePath: Uri): Promise<DefinitionQueryResponse | null>;
    getDocumentSymbols(document: string, filePath: Uri): Promise<SymbolInformation[]>;
    _getDefinitionForNamedType(query: string, ast: DocumentNode, node: NamedTypeNode, filePath: Uri, projectConfig: GraphQLProjectConfig): Promise<DefinitionQueryResponse | null>;
    _getDefinitionForField(query: string, _ast: DocumentNode, _node: FieldNode, _filePath: Uri, projectConfig: GraphQLProjectConfig, position: IPosition): Promise<import("graphql-language-service").DefinitionQueryResult | null>;
    _getDefinitionForArgument(query: string, _ast: DocumentNode, _node: ArgumentNode, _filePath: Uri, projectConfig: GraphQLProjectConfig, position: IPosition): Promise<import("graphql-language-service").DefinitionQueryResult | null>;
    _getDefinitionForFragmentSpread(query: string, ast: DocumentNode, node: FragmentSpreadNode, filePath: Uri, projectConfig: GraphQLProjectConfig): Promise<DefinitionQueryResponse | null>;
    getOutline(documentText: string): Promise<Outline | null>;
}
//# sourceMappingURL=GraphQLLanguageService.d.ts.map