import { IRPCProtocol } from '@opensumi/ide-connection';
import { CancellationToken, IDisposable, IExtensionInfo } from '@opensumi/ide-core-common';
import { ExtensionDocumentDataManager, IExtHostCustomEditor, IWebviewPanelOptions } from '../../../common/vscode';
import { CustomEditorProvider, CustomReadonlyEditorProvider, CustomTextEditorProvider } from '../../../common/vscode/custom-editor';
import { Uri } from '../../../common/vscode/ext-types';
import { ExtHostWebviewService } from './ext.host.api.webview';
import type { UriComponents } from '@opensumi/ide-editor';
export declare class ExtHostCustomEditorImpl implements IExtHostCustomEditor {
    private webview;
    private extDocuments;
    private proxy;
    private providers;
    private customDocuments;
    constructor(rpcProtocol: IRPCProtocol, webview: ExtHostWebviewService, extDocuments: ExtensionDocumentDataManager);
    registerCustomEditorProvider(viewType: string, provider: CustomTextEditorProvider | CustomEditorProvider | CustomReadonlyEditorProvider, options: {
        supportsMultipleEditorsPerDocument?: boolean;
        webviewOptions?: IWebviewPanelOptions;
    }, extensionInfo: IExtensionInfo): IDisposable;
    $saveCustomDocument(viewType: string, uriComp: UriComponents, token: CancellationToken): Promise<void>;
    $revertCustomDocument(viewType: string, uriComp: UriComponents, token: CancellationToken): Promise<void>;
    $resolveCustomTextEditor(viewType: string, uriParts: UriComponents, webviewPanelId: string, token: CancellationToken): Promise<void>;
    private getCustomDocument;
    $undo(viewType: string, uriParts: Uri): Promise<void>;
    $redo(viewType: string, uriParts: Uri): Promise<void>;
}
//# sourceMappingURL=ext.host.custom-editor.d.ts.map