import { View } from "aurelia-framework";
export interface UITabConfig {
    id?: string;
    icon?: string;
    label?: string;
    tooltip?: string;
    active?: boolean;
    disabled?: boolean;
    closeable?: boolean;
    href?: string;
    view?: AnyObject;
    model?: AnyObject;
    element?: Element;
    btnEl?: Element;
    viewModel?: AnyObject;
    classes?: string;
    styleObject?: AnyObject;
}
export declare class UITabPanel {
    protected element: Element;
    tabs: UITabConfig[];
    active: string;
    align: "top" | "bottom";
    beforechange: () => Promise<boolean> | boolean;
    beforeclose: () => Promise<boolean> | boolean;
    protected innerTabs: UITabConfig[];
    protected activeTab: UITabConfig;
    protected isDragAndDrop: boolean;
    protected dragDropFunction: ({}: {}) => void | Promise<void> | boolean | Promise<boolean>;
    private owningView;
    private composeVm;
    private wrapperEl;
    private menuEl;
    private overflowEl;
    private hasOverflow;
    private obResize;
    private isAttached;
    constructor(element: Element);
    activateTab(id: string): Promise<boolean>;
    closeTab(id: string): Promise<boolean>;
    protected created(owningView: View): void;
    protected attached(): void;
    protected detached(): void;
    protected innerTabsChanged(): void;
    protected tabsChanged(): void;
    protected activate(id: string): boolean;
    protected remove(id: string): boolean;
    protected calculateOverflow(): void;
    private lastPreview;
    protected drag(event: DragEvent, tab: UITabConfig): void;
    protected ondragenter(event: DragEvent, tab?: UITabConfig): void;
    protected ondragleave(event: DragEvent, tab?: UITabConfig, all?: boolean): void;
    protected ondragover(event: DragEvent, tab?: UITabConfig): boolean;
    protected drop(event: DragEvent, tab?: UITabConfig): Promise<void>;
}
