import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import { StorageMethods } from '../../utils/store/component-store';
/**
 * Tab groups organize content into a container that shows one section at a time.
 *
 * @version 1.0
 * @status stable
 *
 * @slot tabs - Add `nano-tab` elements to add clickable tabs.
 * @slot - Add `nano-tab-content` elements to add tabbable content.
 *
 * @part base - the main tab-group wrapper
 * @part nav - the bar surrounding all the tabs and nav buttons
 * @part tabs - the wrapper around the `nano-tab` components
 * @part scroll-buttons - the button which appear when the tabs overflow
 * @part active-tab-indicator - the active indicator line
 * @part body - the wrapper around the `nano-tab-content` components
 */
export declare class NanoTabGroup implements ComponentInterface {
    private baseId;
    private activeTab;
    private activePanel;
    private isRtl;
    private initialTouchX;
    private initialTouchY;
    private init;
    private _tab;
    private get tab();
    private set tab(value);
    host: HTMLNanoTabGroupElement;
    /**
     * The placement of the tabs.
     */
    placement: 'top' | 'start';
    /**
     * Disables the scroll arrows that appear when tabs overflow.
     */
    noScrollControls: boolean;
    /** Make all tabs equal size. This is only recommended when there are a small number of tabs */
    equalTabSize: boolean;
    /** Size of tabs. Default is `regular`. `large` is only available when `placement="top"` */
    size: 'regular' | 'large';
    /**
     * Store the open tab against this ID in the component store.
     * Use in combination with `storeMethod`
     */
    storeId?: string;
    /**
     * The method of storage.
     * Either session storage, url hash (after an '#') or url query (after an '?').
     */
    storeMethod: StorageMethods;
    /**
     * Disable 'swipe to change tab' on devices with touch
     */
    disableSwipe: boolean;
    /** Emitted when a tab is shown. */
    nanoTabShow: EventEmitter<{
        name: string;
    }>;
    /** Emitted when a tab is hidden. */
    nanoTabHide: EventEmitter<{
        name: string;
    }>;
    /** Emitted when the tab is closable and the close button is activated. */
    nanoTabWillClose: EventEmitter<{
        name: string;
    }>;
    /** Emitted when a closable tab is removed. */
    nanoTabClose: EventEmitter<{
        name: string;
    }>;
    /** Shows the specified tab panel. */
    show(panel: string): Promise<void>;
    get getAllActiveTabs(): HTMLNanoTabElement[];
    get getAllTabs(): HTMLNanoTabElement[];
    get getAllPanels(): HTMLNanoTabContentElement[];
    get getActiveTab(): HTMLNanoTabElement;
    private setActiveTab;
    private setAriaLabels;
    handleTabClose(ev: CustomEvent & {
        target: HTMLNanoTabElement;
    }): void;
    private handleClick;
    private handleKeyDown;
    private handleTouchStart;
    private handleTouchEnd;
    private handleContentSlotChange;
    private handleTabSlotChange;
    componentWillLoad(): void;
    componentDidLoad(): void;
    connectedCallback(): void;
    render(): any;
}
