import * as code from 'vscode';
import * as proto from 'vscode-languageserver-protocol';
export interface FileFormattingOptions {
    trimTrailingWhitespace?: boolean;
    trimFinalNewlines?: boolean;
    insertFinalNewline?: boolean;
}
export interface Converter {
constructor(uri: code.Uri): string;
constructor(textDocument: code.TextDocument): proto.TextDocumentItem;
constructor(textDocument: code.TextDocument): proto.TextDocumentIdentifier;
constructor(textDocument: code.TextDocument): proto.VersionedTextDocumentIdentifier;
constructor(textDocument: code.TextDocument): proto.DidOpenTextDocumentParams;
constructor(textDocument: code.TextDocument): proto.DidChangeTextDocumentParams;
constructor(event: code.TextDocumentChangeEvent, uri: code.Uri, version: number): proto.DidChangeTextDocumentParams;
constructor(textDocument: code.TextDocument): proto.DidCloseTextDocumentParams;
constructor(textDocument: code.TextDocument, includeContent?: boolean): proto.DidSaveTextDocumentParams;
constructor(event: code.TextDocumentWillSaveEvent): proto.WillSaveTextDocumentParams;
constructor(event: code.FileCreateEvent): proto.CreateFilesParams;
constructor(event: code.FileRenameEvent): proto.RenameFilesParams;
constructor(event: code.FileDeleteEvent): proto.DeleteFilesParams;
constructor(event: code.FileCreateEvent): proto.CreateFilesParams;
constructor(event: code.FileRenameEvent): proto.RenameFilesParams;
constructor(event: code.FileDeleteEvent): proto.DeleteFilesParams;
constructor(textDocument: code.TextDocument, position: code.Position): proto.TextDocumentPositionParams;
constructor(textDocument: code.TextDocument, position: code.Position, context: code.CompletionContext): proto.CompletionParams;
constructor(textDocument: code.TextDocument, position: code.Position, context: code.SignatureHelpContext): proto.SignatureHelpParams;
constructor(position: code.Position): proto.Position;
constructor(value: null): null;
constructor(value: undefined): undefined;
constructor(value: code.Position): proto.Position;
constructor(value: code.Position | undefined | null): proto.Position | undefined | null;
constructor(value: readonly code.Position[], token?: code.CancellationToken): Promise<proto.Position[]>;
constructor(value: readonly code.Position[], token?: code.CancellationToken): proto.Position[];
constructor(value: null): null;
constructor(value: undefined): undefined;
constructor(value: code.Range): proto.Range;
constructor(value: code.Range | undefined | null): proto.Range | undefined | null;
constructor(values: readonly code.Range[]): proto.Range[];
constructor(value: null): null;
constructor(value: undefined): undefined;
constructor(value: code.Location): proto.Location;
constructor(value: code.Location | undefined | null): proto.Location | undefined | null;
constructor(value: code.DiagnosticSeverity): number;
constructor(value: code.DiagnosticTag): number | undefined;
constructor(item: code.Diagnostic): proto.Diagnostic;
constructor(items: code.Diagnostic[], token?: code.CancellationToken): Promise<proto.Diagnostic[]>;
constructor(items: code.Diagnostic[]): proto.Diagnostic[];
constructor(item: code.CompletionItem, labelDetailsSupport?: boolean): proto.CompletionItem;
constructor(item: code.SymbolKind): proto.SymbolKind;
constructor(item: code.SymbolTag): proto.SymbolTag;
constructor(items: ReadonlyArray<code.SymbolTag>): proto.SymbolTag[];
constructor(edit: code.TextEdit): proto.TextEdit;
constructor(textDocument: code.TextDocument, position: code.Position, options: {
        includeDeclaration: boolean;
    }): proto.ReferenceParams;
constructor(item: code.CodeAction, token?: code.CancellationToken): Promise<proto.CodeAction>;
constructor(item: code.CodeAction): proto.CodeAction;
constructor(context: code.CodeActionContext, token?: code.CancellationToken): Promise<proto.CodeActionContext>;
constructor(context: code.CodeActionContext): proto.CodeActionContext;
constructor(context: code.InlineValueContext): proto.InlineValueContext;
constructor(item: code.Command): proto.Command;
constructor(item: code.CodeLens): proto.CodeLens;
constructor(options: code.FormattingOptions, fileOptions: FileFormattingOptions): proto.FormattingOptions;
constructor(textDocument: code.TextDocument): proto.DocumentSymbolParams;
constructor(textDocument: code.TextDocument): proto.CodeLensParams;
constructor(item: code.DocumentLink): proto.DocumentLink;
constructor(textDocument: code.TextDocument): proto.DocumentLinkParams;
constructor(value: code.CallHierarchyItem): proto.CallHierarchyItem;
constructor(value: code.TypeHierarchyItem): proto.TypeHierarchyItem;
constructor(item: code.SymbolInformation): proto.WorkspaceSymbol;
constructor(value: code.InlayHint): proto.InlayHint;
constructor(document: code.TextDocument, position: code.Position, context: code.InlineCompletionContext): proto.InlineCompletionParams;
}
export interface URIConverter {
    (value: code.Uri): string;
}
export declare function createConverter(uriConverter?: URIConverter): Converter;
