import { InsertTextFormat, MarkupContent, MarkupKind, TextEdit } from 'vscode-languageserver-types'; import { Declaration } from '../analyzer/declaration'; import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes'; import { ClassType, Type } from '../analyzer/types'; import { SignatureDisplayType } from '../common/configOptions'; import { TextEditAction } from '../common/editAction'; import { ServiceProvider } from '../common/serviceProvider'; import { Uri } from '../common/uri/uri'; export interface Edits { format?: InsertTextFormat; textEdit?: TextEdit; additionalTextEdits?: TextEditAction[]; } export interface CommonDetail { funcParensDisabled?: boolean; edits?: Edits; extraCommitChars?: boolean; } export interface SymbolDetail extends CommonDetail { autoImportSource?: string; autoImportAlias?: string; boundObjectOrClass?: ClassType; } export interface CompletionDetail extends CommonDetail { typeDetail?: string; documentation?: string; autoImportText?: { source: string; importText: string; }; sortText?: string; itemDetail?: string; moduleUri?: Uri; } export declare function getTypeDetail(evaluator: TypeEvaluator, type: Type, primaryDecl: Declaration | undefined, name: string, detail: SymbolDetail | undefined, functionSignatureDisplay: SignatureDisplayType): string | undefined; export declare function getCompletionItemDocumentation(serviceProvider: ServiceProvider, typeDetail: string | undefined, documentation: string | undefined, markupKind: MarkupKind, declaration: Declaration | undefined): MarkupContent | undefined;