import { Event } from "../../../../base/common/event.js";
import { IDisposable } from "../../../../base/common/lifecycle.js";
import { ContextKeyValue } from "../../../../platform/contextkey/common/contextkey.js";
import { type IInstantiationService } from "../../../../platform/instantiation/common/instantiation.js";
import { IRectangle } from "../../../../platform/window/common/window.js";
import { GroupIdentifier, IEditorPartOptions, IEditorPartOptionsChangeEvent } from "../../../common/editor.js";
import { IEditorGroupsContainer, IAuxiliaryEditorPart, IEditorPart, IEditorGroup, IEditorWorkingSet, IEditorWorkingSetOptions, IEditorGroupContextKeyProvider } from "./editorGroupsService.js";
export declare const IEditorGroupsService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IEditorGroupsService>;
export interface IEditorGroupsService extends IEditorGroupsContainer {
    readonly _serviceBrand: undefined;
    readonly onDidCreateAuxiliaryEditorPart: Event<IAuxiliaryEditorPart>;
    readonly mainPart: IEditorPart;
    readonly parts: ReadonlyArray<IEditorPart>;
    getPart(group: IEditorGroup | GroupIdentifier): IEditorPart;
    getPart(container: unknown): IEditorPart;
    readonly partOptions: IEditorPartOptions;
    readonly onDidChangeEditorPartOptions: Event<IEditorPartOptionsChangeEvent>;
    createAuxiliaryEditorPart(options?: {
        bounds?: Partial<IRectangle>;
        compact?: boolean;
    }): Promise<IAuxiliaryEditorPart>;
    getScopedInstantiationService(part: IEditorPart): IInstantiationService;
    saveWorkingSet(name: string): IEditorWorkingSet;
    getWorkingSets(): IEditorWorkingSet[];
    applyWorkingSet(workingSet: IEditorWorkingSet | "empty", options?: IEditorWorkingSetOptions): Promise<boolean>;
    deleteWorkingSet(workingSet: IEditorWorkingSet): void;
    registerContextKeyProvider<T extends ContextKeyValue>(provider: IEditorGroupContextKeyProvider<T>): IDisposable;
}
