import tsp from 'typescript/lib/protocol';
export declare const CommandTypes: {
    JsxClosingTag: tsp.CommandTypes.JsxClosingTag;
    Brace: tsp.CommandTypes.Brace;
    BraceCompletion: tsp.CommandTypes.BraceCompletion;
    GetSpanOfEnclosingComment: tsp.CommandTypes.GetSpanOfEnclosingComment;
    Change: tsp.CommandTypes.Change;
    Close: tsp.CommandTypes.Close;
    /** @deprecated Prefer CompletionInfo -- see comment on CompletionsResponse */
    Completions: tsp.CommandTypes.Completions;
    CompletionInfo: tsp.CommandTypes.CompletionInfo;
    CompletionDetails: tsp.CommandTypes.CompletionDetails;
    CompileOnSaveAffectedFileList: tsp.CommandTypes.CompileOnSaveAffectedFileList;
    CompileOnSaveEmitFile: tsp.CommandTypes.CompileOnSaveEmitFile;
    Configure: tsp.CommandTypes.Configure;
    Definition: tsp.CommandTypes.Definition;
    DefinitionAndBoundSpan: tsp.CommandTypes.DefinitionAndBoundSpan;
    Implementation: tsp.CommandTypes.Implementation;
    Exit: tsp.CommandTypes.Exit;
    Format: tsp.CommandTypes.Format;
    Formatonkey: tsp.CommandTypes.Formatonkey;
    Geterr: tsp.CommandTypes.Geterr;
    GeterrForProject: tsp.CommandTypes.GeterrForProject;
    SemanticDiagnosticsSync: tsp.CommandTypes.SemanticDiagnosticsSync;
    SyntacticDiagnosticsSync: tsp.CommandTypes.SyntacticDiagnosticsSync;
    SuggestionDiagnosticsSync: tsp.CommandTypes.SuggestionDiagnosticsSync;
    NavBar: tsp.CommandTypes.NavBar;
    Navto: tsp.CommandTypes.Navto;
    NavTree: tsp.CommandTypes.NavTree;
    NavTreeFull: tsp.CommandTypes.NavTreeFull;
    /** @deprecated */
    Occurrences: tsp.CommandTypes.Occurrences;
    DocumentHighlights: tsp.CommandTypes.DocumentHighlights;
    Open: tsp.CommandTypes.Open;
    Quickinfo: tsp.CommandTypes.Quickinfo;
    References: tsp.CommandTypes.References;
    Reload: tsp.CommandTypes.Reload;
    Rename: tsp.CommandTypes.Rename;
    Saveto: tsp.CommandTypes.Saveto;
    SignatureHelp: tsp.CommandTypes.SignatureHelp;
    Status: tsp.CommandTypes.Status;
    TypeDefinition: tsp.CommandTypes.TypeDefinition;
    ProjectInfo: tsp.CommandTypes.ProjectInfo;
    ReloadProjects: tsp.CommandTypes.ReloadProjects;
    Unknown: tsp.CommandTypes.Unknown;
    OpenExternalProject: tsp.CommandTypes.OpenExternalProject;
    OpenExternalProjects: tsp.CommandTypes.OpenExternalProjects;
    CloseExternalProject: tsp.CommandTypes.CloseExternalProject;
    UpdateOpen: tsp.CommandTypes.UpdateOpen;
    GetOutliningSpans: tsp.CommandTypes.GetOutliningSpans;
    TodoComments: tsp.CommandTypes.TodoComments;
    Indentation: tsp.CommandTypes.Indentation;
    DocCommentTemplate: tsp.CommandTypes.DocCommentTemplate;
    CompilerOptionsForInferredProjects: tsp.CommandTypes.CompilerOptionsForInferredProjects;
    GetCodeFixes: tsp.CommandTypes.GetCodeFixes;
    GetCombinedCodeFix: tsp.CommandTypes.GetCombinedCodeFix;
    ApplyCodeActionCommand: tsp.CommandTypes.ApplyCodeActionCommand;
    GetSupportedCodeFixes: tsp.CommandTypes.GetSupportedCodeFixes;
    GetApplicableRefactors: tsp.CommandTypes.GetApplicableRefactors;
    GetEditsForRefactor: tsp.CommandTypes.GetEditsForRefactor;
    OrganizeImports: tsp.CommandTypes.OrganizeImports;
    GetEditsForFileRename: tsp.CommandTypes.GetEditsForFileRename;
    ConfigurePlugin: tsp.CommandTypes.ConfigurePlugin;
};
export declare type Commands = {
    [CommandTypes.JsxClosingTag]: {
        request: tsp.JsxClosingTagRequest;
        response: tsp.JsxClosingTagResponse;
    };
    [CommandTypes.Brace]: {
        request: tsp.BraceRequest;
        response: tsp.BraceResponse;
    };
    [CommandTypes.BraceCompletion]: {
        request: tsp.BraceCompletionRequest;
        response: undefined;
    };
    [CommandTypes.GetSpanOfEnclosingComment]: {
        request: tsp.SpanOfEnclosingCommentRequest;
        response: undefined;
    };
    [CommandTypes.Change]: {
        request: tsp.ChangeRequest;
        response: undefined;
    };
    [CommandTypes.Close]: {
        request: tsp.CloseRequest;
        response: undefined;
    };
    [CommandTypes.Completions]: {
        request: tsp.CompletionsRequest;
        response: tsp.CompletionsResponse;
    };
    [CommandTypes.CompletionInfo]: {
        request: tsp.CompletionsRequest;
        response: tsp.CompletionInfoResponse;
    };
    [CommandTypes.CompletionDetails]: {
        request: tsp.CompletionDetailsRequest;
        response: tsp.CompletionDetailsResponse;
    };
    [CommandTypes.CompileOnSaveAffectedFileList]: {
        request: tsp.CompileOnSaveAffectedFileListRequest;
        response: tsp.CompileOnSaveAffectedFileListResponse;
    };
    [CommandTypes.CompileOnSaveEmitFile]: {
        request: tsp.CompileOnSaveEmitFileRequest;
        response: undefined;
    };
    [CommandTypes.Configure]: {
        request: tsp.ConfigureRequest;
        response: tsp.ConfigureResponse;
    };
    [CommandTypes.Definition]: {
        request: tsp.DefinitionRequest;
        response: tsp.DefinitionResponse;
    };
    [CommandTypes.DefinitionAndBoundSpan]: {
        request: tsp.DefinitionAndBoundSpanRequest;
        response: tsp.DefinitionAndBoundSpanResponse;
    };
    [CommandTypes.Implementation]: {
        request: tsp.ImplementationRequest;
        response: tsp.ImplementationResponse;
    };
    [CommandTypes.Exit]: {
        request: tsp.ExitRequest;
        response: undefined;
    };
    [CommandTypes.Format]: {
        request: tsp.FormatRequest;
        response: tsp.FormatResponse;
    };
    [CommandTypes.Formatonkey]: {
        request: tsp.FormatOnKeyRequest;
        response: undefined;
    };
    [CommandTypes.Geterr]: {
        request: tsp.GeterrRequest;
        response: undefined;
    };
    [CommandTypes.GeterrForProject]: {
        request: tsp.GeterrForProjectRequest;
        response: undefined;
    };
    [CommandTypes.SemanticDiagnosticsSync]: {
        request: tsp.SemanticDiagnosticsSyncRequest;
        response: tsp.SemanticDiagnosticsSyncResponse;
    };
    [CommandTypes.SyntacticDiagnosticsSync]: {
        request: tsp.SyntacticDiagnosticsSyncRequest;
        response: tsp.SyntacticDiagnosticsSyncResponse;
    };
    [CommandTypes.SuggestionDiagnosticsSync]: {
        request: tsp.SuggestionDiagnosticsSyncRequest;
        response: tsp.SuggestionDiagnosticsSyncResponse;
    };
    [CommandTypes.NavBar]: {
        request: tsp.NavBarRequest;
        response: tsp.NavBarResponse;
    };
    [CommandTypes.Navto]: {
        request: tsp.NavtoRequest;
        response: tsp.NavtoResponse;
    };
    [CommandTypes.NavTree]: {
        request: tsp.NavTreeRequest;
        response: tsp.NavTreeResponse;
    };
    [CommandTypes.NavTreeFull]: {
        request: undefined;
        response: undefined;
    };
    [CommandTypes.Occurrences]: {
        request: tsp.OccurrencesRequest;
        response: tsp.OccurrencesResponse;
    };
    [CommandTypes.DocumentHighlights]: {
        request: tsp.DocumentHighlightsRequest;
        response: tsp.DocumentHighlightsResponse;
    };
    [CommandTypes.Open]: {
        request: tsp.OpenRequest;
        response: undefined;
    };
    [CommandTypes.Quickinfo]: {
        request: tsp.QuickInfoRequest;
        response: tsp.QuickInfoResponse;
    };
    [CommandTypes.References]: {
        request: tsp.ReferencesRequest;
        response: tsp.ReferencesResponse;
    };
    [CommandTypes.Reload]: {
        request: tsp.ReloadRequest;
        response: tsp.ReloadResponse;
    };
    [CommandTypes.Rename]: {
        request: tsp.RenameRequest;
        response: tsp.RenameResponse;
    };
    [CommandTypes.Saveto]: {
        request: tsp.SavetoRequest;
        response: undefined;
    };
    [CommandTypes.SignatureHelp]: {
        request: tsp.SignatureHelpRequest;
        response: tsp.SignatureHelpResponse;
    };
    [CommandTypes.Status]: {
        request: tsp.StatusRequest;
        response: tsp.StatusResponse;
    };
    [CommandTypes.TypeDefinition]: {
        request: tsp.TypeDefinitionRequest;
        response: tsp.TypeDefinitionResponse;
    };
    [CommandTypes.ProjectInfo]: {
        request: tsp.ProjectInfoRequest;
        response: tsp.ProjectInfoResponse;
    };
    [CommandTypes.ReloadProjects]: {
        request: tsp.ReloadProjectsRequest;
        response: undefined;
    };
    [CommandTypes.Unknown]: {
        request: undefined;
        response: undefined;
    };
    [CommandTypes.OpenExternalProject]: {
        request: tsp.OpenExternalProjectRequest;
        response: tsp.OpenExternalProjectResponse;
    };
    [CommandTypes.OpenExternalProjects]: {
        request: tsp.OpenExternalProjectsRequest;
        response: tsp.OpenExternalProjectsResponse;
    };
    [CommandTypes.CloseExternalProject]: {
        request: tsp.CloseExternalProjectRequest;
        response: tsp.CloseExternalProjectResponse;
    };
    [CommandTypes.UpdateOpen]: {
        request: tsp.UpdateOpenRequest;
        response: undefined;
    };
    [CommandTypes.GetOutliningSpans]: {
        request: tsp.OutliningSpansRequest;
        response: tsp.OutliningSpansResponse;
    };
    [CommandTypes.TodoComments]: {
        request: tsp.TodoCommentRequest;
        response: tsp.TodoCommentsResponse;
    };
    [CommandTypes.Indentation]: {
        request: tsp.IndentationRequest;
        response: tsp.IndentationResponse;
    };
    [CommandTypes.DocCommentTemplate]: {
        request: tsp.DocCommentTemplateRequest;
        response: tsp.DocCommandTemplateResponse;
    };
    [CommandTypes.CompilerOptionsForInferredProjects]: {
        request: tsp.SetCompilerOptionsForInferredProjectsRequest;
        response: undefined;
    };
    [CommandTypes.GetCodeFixes]: {
        request: tsp.CodeFixRequest;
        response: tsp.GetCodeFixesResponse;
    };
    [CommandTypes.GetCombinedCodeFix]: {
        request: tsp.GetCombinedCodeFixRequest;
        response: tsp.GetCombinedCodeFixResponse;
    };
    [CommandTypes.ApplyCodeActionCommand]: {
        request: tsp.ApplyCodeActionCommandRequest;
        response: tsp.ApplyCodeActionCommandResponse;
    };
    [CommandTypes.GetSupportedCodeFixes]: {
        request: tsp.GetSupportedCodeFixesRequest;
        response: tsp.GetSupportedCodeFixesResponse;
    };
    [CommandTypes.GetApplicableRefactors]: {
        request: tsp.GetApplicableRefactorsRequest;
        response: tsp.GetApplicableRefactorsResponse;
    };
    [CommandTypes.GetEditsForRefactor]: {
        request: tsp.GetEditsForRefactorRequest;
        response: tsp.GetEditsForRefactorResponse;
    };
    [CommandTypes.OrganizeImports]: {
        request: tsp.OrganizeImportsRequest;
        response: tsp.OrganizeImportsResponse;
    };
    [CommandTypes.GetEditsForFileRename]: {
        request: tsp.GetEditsForFileRenameRequest;
        response: tsp.GetEditsForFileRenameResponse;
    };
    [CommandTypes.ConfigurePlugin]: {
        request: tsp.ConfigurePluginRequest;
        response: tsp.ConfigurePluginResponse;
    };
};
export declare type CommandRequest<C extends tsp.CommandTypes> = Commands[C]['request'];
declare type CommandArgsHelper<T> = T extends {
    arguments?: any;
} ? T['arguments'] : undefined;
export declare type CommandArgs<C extends tsp.CommandTypes> = CommandArgsHelper<CommandRequest<C>>;
export declare type CommandResponse<C extends tsp.CommandTypes> = Commands[C]['response'];
declare type CommandBodyHelper<T> = T extends {
    body?: any;
} ? T['body'] : undefined;
export declare type CommandBody<C extends tsp.CommandTypes> = CommandBodyHelper<CommandResponse<C>>;
export declare function commandHasResponse(command: tsp.CommandTypes): boolean;
export {};
