import { IRPCProtocol } from '@opensumi/ide-connection';
import { Emitter } from '@opensumi/ide-core-common';
import { IExtHostLayout, IMainThreadLayout, ITabbarHandler } from '../../../common/sumi/layout';
import { IExtHostCommands, IExtensionDescription, type ViewBadge } from '../../../common/vscode';
export declare class TabbarHandler implements ITabbarHandler {
    id: string;
    private proxy;
    readonly onActivateEmitter: Emitter<void>;
    readonly onActivate: import("@opensumi/ide-core-common").Event<void>;
    readonly onInActivateEmitter: Emitter<void>;
    readonly onInActivate: import("@opensumi/ide-core-common").Event<void>;
    constructor(id: string, proxy: IMainThreadLayout);
    setTitle(title: string): void;
    setIcon(iconPath: string): void;
    setSize(size: number): void;
    activate(): void;
    deactivate(): void;
    setVisible(visible: boolean): void;
    setBadge(badge?: string | ViewBadge): void;
    isAttached(): Promise<boolean>;
}
export declare class ExtHostLayout implements IExtHostLayout {
    private rpcProtocol;
    private handles;
    private proxy;
    constructor(rpcProtocol: IRPCProtocol);
    getTabbarHandler(id: string): ITabbarHandler;
    $acceptMessage(id: string, type: 'activate' | 'deactivate'): void;
}
export declare function createLayoutAPIFactory(extHostCommands: IExtHostCommands, kaitianLayout: IExtHostLayout, extension: IExtensionDescription): {
    toggleBottomPanel: (size?: number) => Promise<unknown>;
    toggleLeftPanel: (size?: number) => Promise<unknown>;
    toggleRightPanel: (size?: number) => Promise<unknown>;
    showRightPanel: (size?: number) => Promise<unknown>;
    hideRightPanel: () => Promise<unknown>;
    activatePanel: (id: any) => Promise<unknown>;
    isBottomPanelVisible: () => Promise<unknown>;
    isLeftPanelVisible: () => Promise<unknown>;
    isRightPanelVisible: () => Promise<unknown>;
    getTabbarHandler: (id: string) => ITabbarHandler;
    getExtensionTabbarHandler: (id: string, extensionId?: string) => ITabbarHandler;
};
//# sourceMappingURL=ext.host.layout.d.ts.map