import { IDraggable } from "./IDraggable";
import { IJsonTabNode } from "./IJsonModel";
import { Node } from "./Node";
export declare class TabNode extends Node implements IDraggable {
    static readonly TYPE = "tab";
    getName(): string;
    getHelpText(): string | undefined;
    getComponent(): string | undefined;
    getWindowId(): string;
    getWindow(): Window | undefined;
    /**
     * Returns the config attribute that can be used to store node specific data that
     * WILL be saved to the json. The config attribute should be changed via the action Actions.updateNodeAttributes rather
     * than directly, for example:
     * this.state.model.doAction(
     *   FlexLayout.Actions.updateNodeAttributes(node.getId(), {config:myConfigObject}));
     */
    getConfig(): any;
    /**
     * Returns an object that can be used to store transient node specific data that will
     * NOT be saved in the json.
     */
    getExtraData(): Record<string, any>;
    isPoppedOut(): boolean;
    isSelected(): boolean;
    getIcon(): string | undefined;
    isEnableClose(): boolean;
    getCloseType(): number;
    isEnablePopout(): boolean;
    isEnablePopoutIcon(): boolean;
    isEnablePopoutOverlay(): boolean;
    isEnableDrag(): boolean;
    isEnableRename(): boolean;
    isEnableWindowReMount(): boolean;
    getClassName(): string | undefined;
    getContentClassName(): string | undefined;
    getTabSetClassName(): string | undefined;
    isEnableRenderOnDemand(): boolean;
    getMinWidth(): number;
    getMinHeight(): number;
    getMaxWidth(): number;
    getMaxHeight(): number;
    toJson(): IJsonTabNode;
}
