import { Event } from '../events';
import { CompositeDisposable } from '../lifecycle';
import { IDockviewComponent } from '../dockview/dockviewComponent';
import { ITabRenderer } from './types';
import { IGroupPanel } from './groupPanel';
import { GroupviewPanel } from './groupviewPanel';
import { DroptargetEvent } from '../dnd/droptarget';
export declare enum MouseEventKind {
    CLICK = "CLICK",
    CONTEXT_MENU = "CONTEXT_MENU"
}
export interface LayoutMouseEvent {
    kind: MouseEventKind;
    event: MouseEvent;
    panel?: IGroupPanel;
    tab?: boolean;
}
export interface ITab {
    panelId: string;
    element: HTMLElement;
    setContent: (element: ITabRenderer) => void;
    onChanged: Event<LayoutMouseEvent>;
    onDrop: Event<DroptargetEvent>;
    setActive(isActive: boolean): void;
}
export declare class Tab extends CompositeDisposable implements ITab {
    panelId: string;
    private readonly accessor;
    private group;
    private _element;
    private droptarget;
    private content?;
    private readonly _onChanged;
    readonly onChanged: Event<LayoutMouseEvent>;
    private readonly _onDropped;
    readonly onDrop: Event<DroptargetEvent>;
    private readonly panelTransfer;
    get element(): HTMLElement;
    private iframes;
    constructor(panelId: string, accessor: IDockviewComponent, group: GroupviewPanel);
    setActive(isActive: boolean): void;
    setContent(part: ITabRenderer): void;
    dispose(): void;
}
