import { Handler, IExtHostCommands, IExtensionDescription, PermittedHandler } from '../../../common/vscode';
import { Disposable } from '../../../common/vscode/ext-types';
import { ExtensionHostEditorService } from '../vscode/editor/editor.host';
export declare function createCommandsApiFactory(extHostCommands: IExtHostCommands, extHostEditors: ExtensionHostEditorService, extension: IExtensionDescription): {
    registerCommandWithPermit(id: string, handler: Handler, isPermitted: PermittedHandler): Disposable;
    registerCommand(command: string, callback: (...args: any[]) => any, thisArg?: any): import("vscode").Disposable;
    executeCommand<T>(command: string, ...rest: any[]): Thenable<T | undefined>;
    getCommands(filterInternal?: boolean): Thenable<string[]>;
    registerTextEditorCommand(command: string, callback: (textEditor: import("vscode").TextEditor, edit: import("vscode").TextEditorEdit, ...args: any[]) => void, thisArg?: any): import("vscode").Disposable;
    registerDiffInformationCommand(command: string, callback: (diff: import("vscode").LineChange[], ...args: any[]) => any, thisArg?: any): import("vscode").Disposable;
};
//# sourceMappingURL=ext.host.command.d.ts.map