import { Injector } from '@opensumi/di';
import { IRPCProtocol } from '@opensumi/ide-connection';
import { PreferenceService } from '@opensumi/ide-core-browser';
import { LabelService } from '@opensumi/ide-core-browser/lib/services';
import { Emitter, Event, URI, WithEventBus } from '@opensumi/ide-core-common';
import { EditorDocumentModelContentChangedEvent, EditorDocumentModelCreationEvent, EditorDocumentModelOptionChangedEvent, EditorDocumentModelRemovalEvent, EditorDocumentModelSavedEvent, EditorDocumentModelWillSaveEvent, IEditorDocumentModelContentProvider, IEditorDocumentModelService } from '@opensumi/ide-editor/lib/browser';
import { IFileServiceClient } from '@opensumi/ide-file-service';
import { IExtensionHostDocService, IMainThreadDocumentsShape } from '../../../common/vscode';
declare class ExtensionEditorDocumentProvider implements IEditorDocumentModelContentProvider {
    private proxy;
    onDidChangeContentEmitter: Emitter<URI>;
    onDidChangeContent: Event<URI>;
    constructor(proxy: IExtensionHostDocService);
    private schemes;
    registerScheme(scheme: string): void;
    unregisterScheme(scheme: string): void;
    handlesScheme(scheme: string): boolean;
    provideEditorDocumentModelContent(uri: URI, encoding?: string): Promise<string>;
    isReadonly(uri: URI): boolean;
}
export declare class MainThreadExtensionDocumentData extends WithEventBus implements IMainThreadDocumentsShape {
    private rpcProtocol;
    private readonly proxy;
    private tempDocIdCount;
    protected docManager: IEditorDocumentModelService;
    private contentRegistry;
    private resourceService;
    private editorComponentRegistry;
    labelService: LabelService;
    injector: Injector;
    preference: PreferenceService;
    fileServiceClient: IFileServiceClient;
    provider: ExtensionEditorDocumentProvider;
    private editorDisposers;
    private extHoldDocuments;
    private docSyncEnabled;
    isDocSyncEnabled(uri: URI | string): boolean;
    isDocIgnored(uri: URI): boolean;
    constructor(rpcProtocol: IRPCProtocol);
    onEditorDocumentModelContentChangeEvent(e: EditorDocumentModelContentChangedEvent): void;
    onEditorDocumentModelWillSaveEvent(e: EditorDocumentModelWillSaveEvent): Promise<void>;
    onEditorDocumentModelOptionChangedEvent(e: EditorDocumentModelOptionChangedEvent): void;
    onEditorDocumentModelContentCreationEvent(e: EditorDocumentModelCreationEvent): void;
    onEditorDocumentModelRemovedEvent(e: EditorDocumentModelRemovalEvent): void;
    onEditorDocumentModelSavingEvent(e: EditorDocumentModelSavedEvent): void;
    $tryCreateDocument(options?: {
        content?: string;
        language?: string;
    }): Promise<string>;
    $tryOpenDocument(uri: string): Promise<void>;
    $trySaveDocument(uri: string): Promise<boolean>;
    $fireTextDocumentChangedEvent(uri: string): Promise<void>;
    $unregisterDocumentProviderWithScheme(scheme: string): void;
    $registerDocumentProviderWithScheme(scheme: string): void;
    dispose(): void;
}
export {};
//# sourceMappingURL=main.thread.doc.d.ts.map