import { ISlottable } from '../../../Behaviors/Slottable';
import { TabPanelAlignment } from '../../../Types/TabPanelAlignment';
import { TabStripPlacement } from '../../../Types/TabStripPlacement';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { ITabElementProps } from './ITabElementProps';
import { TabItemElement } from './TabItemElement';
declare const TabElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Tab - A navigation element used to switch between different sections of content.
 *
 * @element mosaik-tab
 *
 * @dependency {InkBarElement} mosaik-ink-bar - InkBarElement
 * @dependency {TextElement} mosaik-text - TextElement
 * @dependency {TabPanelElement} mosaik-tab-panel - TabPanelElement
 * @dependency {TabStripElement} mosaik-tab-strip - TabStripElement
 * @dependency {TabStripItemElement} mosaik-tab-strip-item - TabStripItemElement
 *
 * @public
 */
export declare class TabElement extends TabElement_base implements ITabElementProps, ISlottable {
    private _alignment;
    private _placement;
    private _hasIndicator;
    private _enableGestures;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `alignment` property.
     *
     * @public
     * @attr
     */
    get alignment(): TabPanelAlignment;
    set alignment(value: TabPanelAlignment);
    /**
     * Gets or sets the `placement` property.
     *
     * @public
     * @attr
     */
    get placement(): TabStripPlacement;
    set placement(value: TabStripPlacement);
    /**
     * Gets or sets the `hasIndicator` property.
     *
     * @public
     * @attr
     */
    get hasIndicator(): boolean;
    set hasIndicator(value: boolean);
    /**
     * Gets or sets the `enableGestures` property.
     *
     * @public
     * @attr
     */
    get enableGestures(): boolean;
    set enableGestures(value: boolean);
    /**
     * Returns the items of the tab.
     *
     * @public
     * @readonly
     */
    get items(): Array<TabItemElement>;
    /**
     * Returns the selected tab item.
     *
     * @public
     * @readonly
     */
    get selectedItem(): TabItemElement | null;
    /**
     * Returns the selected index.
     *
     * @public
     * @readonly
     */
    get selectedIndex(): number;
    /**
     * Selects the specified tab item.
     *
     * @public
     * @param tabItem - The tab item to select.
     */
    select(tabItem: TabItemElement): void;
    /**
     * Selects the specified tab item by its index.
     *
     * @public
     * @param index - The index of the tab item to select.
     */
    selectByIndex(index: number): void;
    /**
     * Selects the specified tab item by its value.
     *
     * @public
     * @param value - The value of the tab item to select.
     */
    selectByValue(value: unknown): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     */
    protected onTabItemSelectionChanged(event: CustomEvent): void;
}
/**
 * @public
 */
export declare namespace TabElement {
    type Props = ITabElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-tab': TabElement;
    }
}
export {};
//# sourceMappingURL=TabElement.d.ts.map