import { EventEmitter } from '../../stencil-public-runtime';
import { Tab } from '../tab-bar/tab.types';
/**
 * The `limel-tab-panel` component uses the `limel-tab-bar` component together
 * with custom slotted components and will display the content for the currently
 * active tab. Each slotted component must have an id equal to the id of the
 * corresponding tab it belongs to. These components should implement the
 * [TabPanelComponent](#/type/TabPanelComponent/) interface.
 *
 * The `limel-tab-panel` component will automatically set each tab configuration
 * on the corresponding slotted component as a property named `tab` so that the
 * component can take action upon that. Sometimes it might be desirable to not
 * load data or render anything until the tab is active.
 *
 * The slotted components can also emit the `changeTab` event to update anything
 * inside the actual tab, e.g. to change the icon, color or badge.
 *
 * @slot - Content to put inside the `limel-tab-panel`. Each slotted element
 * must have the `id` attribute equal to the id of the tab it belongs to.
 * @exampleComponent limel-example-tab-panel-basic
 */
export declare class TabPanel {
    /**
     * The tabs to display in the panel
     */
    tabs: Tab[];
    /**
     * Emitted when a tab has been changed
     */
    protected changeTab: EventEmitter<Tab>;
    private host;
    private slotElements;
    constructor();
    connectedCallback(): void;
    componentDidLoad(): void;
    private initialize;
    disconnectedCallback(): void;
    tabsChanged(): void;
    render(): any;
    private setSlotElements;
    private setTabStatus;
    private handleChangeTabs;
    private getSlot;
    private hidePanels;
}
//# sourceMappingURL=tab-panel.d.ts.map