import type { AbstractContentItem } from '../items';
import type Header from './Header';
/**
 * Represents an individual tab within a Stack's header
 *
 * @param header
 * @param contentItem
 */
export default class Tab {
    /**
     * The tab's html template
     */
    private static _template;
    header: Header;
    contentItem: AbstractContentItem;
    element: JQuery<HTMLElement>;
    titleElement: JQuery<HTMLElement>;
    closeElement: JQuery<HTMLElement>;
    isActive: boolean;
    private _layoutManager;
    private _dragListener?;
    constructor(header: Header, contentItem: AbstractContentItem);
    /**
     * Sets the tab's title to the provided string and sets
     * its title attribute to a pure text representation (without
     * html tags) of the same string.
     * @param title can contain html
     */
    setTitle(title?: string): void;
    /**
     * Sets this tab's active state. To programmatically
     * switch tabs, use header.setActiveContentItem( item ) instead.
     * @param isActive
     */
    setActive(isActive: boolean): void;
    /**
     * Destroys the tab
     *
     * @private
     * @returns {void}
     */
    _$destroy(): void;
    /**
     * Callback for the DragListener
     *
     * @param x The tabs absolute x position
     * @param y The tabs absolute y position
     */
    _onDragStart(x: number, y: number): void;
    /**
     * Callback when the contentItem is focused in
     */
    _onTabContentFocusIn(): void;
    /**
     * Callback when the contentItem is focused out
     *
     * @param {jQuery DOM event} event
     *
     * @private
     * @returns {void}
     */
    _onTabContentFocusOut(): void;
    /**
     * Callback when the tab is clicked
     *
     * @param event
     */
    _onTabClick(event?: JQuery.TriggeredEvent): void;
    /**
     * Callback when the tab's close button is
     * clicked
     *
     * @param event
     */
    _onCloseClick(event: JQuery.TriggeredEvent): void;
    /**
     * Callback to prevent paste into active input on Linux
     * when closing a tab via middle click.
     * @param event
     */
    _onMouseUp(event: JQuery.TriggeredEvent): void;
    /**
     * Callback to capture tab close button mousedown
     * to prevent tab from activating.
     *
     * @param event
     */
    _onCloseMousedown(event: Event): void;
}
//# sourceMappingURL=Tab.d.ts.map