import { IDisposable, CompositeDisposable } from '../../lifecycle';
import { Event } from '../../events';
import { ITab } from '../tab';
import { IGroupPanel } from '../groupPanel';
import { IDockviewComponent } from '../../dockview/dockviewComponent';
import { GroupviewPanel } from '../groupviewPanel';
export interface TabDropIndexEvent {
    event: DragEvent;
    readonly index: number;
}
export interface ITabsContainer extends IDisposable {
    readonly element: HTMLElement;
    readonly panels: string[];
    readonly size: number;
    height: number | undefined;
    delete: (id: string) => void;
    indexOf: (id: string) => number;
    at: (index: number) => ITab;
    onDrop: Event<TabDropIndexEvent>;
    setActive: (isGroupActive: boolean) => void;
    setActivePanel: (panel: IGroupPanel) => void;
    isActive: (tab: ITab) => boolean;
    closePanel: (panel: IGroupPanel) => void;
    openPanel: (panel: IGroupPanel, index?: number) => void;
    setActionElement(element: HTMLElement | undefined): void;
    show(): void;
    hide(): void;
}
export declare class TabsContainer extends CompositeDisposable implements ITabsContainer {
    private accessor;
    private group;
    private readonly _element;
    private readonly tabContainer;
    private readonly voidContainer;
    private readonly actionContainer;
    private readonly voidDropTarget;
    private tabs;
    private selectedIndex;
    private active;
    private activePanel;
    private actions;
    private _height;
    private readonly _onDrop;
    readonly onDrop: Event<TabDropIndexEvent>;
    get panels(): string[];
    get size(): number;
    get height(): number | undefined;
    set height(value: number | undefined);
    show(): void;
    hide(): void;
    setActionElement(element: HTMLElement | undefined): void;
    get element(): HTMLElement;
    isActive(tab: ITab): boolean;
    at(index: number): ITab;
    indexOf(id: string): number;
    constructor(accessor: IDockviewComponent, group: GroupviewPanel, options: {
        tabHeight?: number;
    });
    setActive(isGroupActive: boolean): void;
    private addTab;
    delete(id: string): void;
    setActivePanel(panel: IGroupPanel): void;
    openPanel(panel: IGroupPanel, index?: number): void;
    closePanel(panel: IGroupPanel): void;
    dispose(): void;
}
