import { CancellationToken } from 'vscode-languageserver'; import { Declaration } from '../analyzer/declaration'; import { SourceMapper } from '../analyzer/sourceMapper'; import { SynthesizedTypeInfo } from '../analyzer/symbol'; import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes'; import { DocumentRange } from '../common/docRange'; import { ProgramView } from '../common/extensibility'; import { ServiceProvider } from '../common/serviceProvider'; import { Position } from '../common/textRange'; import { Uri } from '../common/uri/uri'; import { ParseNode } from '../parser/parseNodes'; export declare enum DefinitionFilter { All = "all", PreferSource = "preferSource", PreferStubs = "preferStubs" } export declare function addDeclarationsToDefinitions(evaluator: TypeEvaluator, sourceMapper: SourceMapper, declarations: Declaration[] | undefined, definitions: DocumentRange[]): void; export declare function filterDefinitions(filter: DefinitionFilter, definitions: DocumentRange[]): DocumentRange[]; declare class DefinitionProviderBase { protected readonly sourceMapper: SourceMapper; protected readonly evaluator: TypeEvaluator; private readonly _serviceProvider; protected readonly node: ParseNode | undefined; protected readonly offset: number; private readonly _filter; protected readonly token: CancellationToken; protected constructor(sourceMapper: SourceMapper, evaluator: TypeEvaluator, _serviceProvider: ServiceProvider | undefined, node: ParseNode | undefined, offset: number, _filter: DefinitionFilter, token: CancellationToken); getDefinitionsForNode(node: ParseNode, offset: number): DocumentRange[] | undefined; protected resolveDeclarations(declarations: Declaration[] | undefined, definitions: DocumentRange[]): void; protected addSynthesizedTypes(synthTypes: SynthesizedTypeInfo[], definitions: DocumentRange[]): void; } export declare class DefinitionProvider extends DefinitionProviderBase { constructor(program: ProgramView, fileUri: Uri, position: Position, filter: DefinitionFilter, token: CancellationToken); static getDefinitionsForNode(sourceMapper: SourceMapper, evaluator: TypeEvaluator, node: ParseNode, offset: number, token: CancellationToken): DocumentRange[] | undefined; getDefinitions(): DocumentRange[] | undefined; } export declare class TypeDefinitionProvider extends DefinitionProviderBase { private readonly _fileUri; constructor(program: ProgramView, fileUri: Uri, position: Position, token: CancellationToken); getDefinitions(): DocumentRange[] | undefined; } export {};