/**
* @license
* Copyright 2023 Nuraly, Laabidi Aymen
* SPDX-License-Identifier: MIT
*/
import { LitElement, PropertyValueMap } from 'lit';
import { TabOrientation, TabsAlign, TabSize, TabType, TabEditable, TabsPanelConfig, TabPopOutConfig, TabItem } from './tabs.types.js';
import '../panel/index.js';
import { type TabsKeyboardHost, type TabsDragDropHost, type TabsEditableHost, type TabsEventHost, type TabsPopOutHost } from './controllers/index.js';
declare const NrTabsElement_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement;
/**
* Versatile tabs component with support for multiple orientations, editable tabs, drag & drop, and optional panel wrapper.
*
* @example
* ```html
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* ```
*
* @fires nr-tab-click - Tab clicked
* @fires nr-tab-change - Active tab changed
* @fires nr-tab-add - New tab requested
* @fires nr-tab-remove - Tab removal requested
* @fires nr-tab-edit - Tab edited
* @fires nr-tab-order-change - Tab order changed via drag & drop
* @fires nr-tabs-panel-close - Panel closed (when pannable)
* @fires nr-tabs-panel-minimize - Panel minimized (when pannable)
* @fires nr-tabs-panel-resize - Panel resized (when pannable)
*
* @slot default - Tab content
*
* @csspart tab-list - The tab labels row/column container
* @csspart tab - An individual tab label element
* @csspart tab-panel - The active tab content panel
*/
export declare class NrTabsElement extends NrTabsElement_base implements TabsKeyboardHost, TabsDragDropHost, TabsEditableHost, TabsEventHost, TabsPopOutHost {
static useShadowDom: boolean;
static styles: import("lit").CSSResult;
/** Currently active tab index */
activeTab: number;
/** Tab orientation (horizontal, vertical) */
orientation: TabOrientation;
/** Tab alignment (left, center, right, stretch) */
align: TabsAlign;
/** Tab size (small, medium, large) */
tabSize: TabSize;
/** Tab type/variant */
variant: TabType;
/** Editable configuration */
editable?: TabEditable;
/** Array of tab items */
tabs: TabItem[];
/** Whether tabs are animated */
animated: boolean;
/** Whether to destroy inactive tab content */
destroyInactiveTabPane: boolean;
/** Custom aria-label for the tabs container */
tabsAriaLabel: string;
/** Panel configuration for making tabs pannable */
panelConfig?: TabsPanelConfig;
/** Pop-out configuration for making tabs pop-outable */
popOut?: TabPopOutConfig;
requiredComponents: string[];
private keyboardController;
private dragDropController;
private editableController;
private eventController;
private popOutController;
connectedCallback(): void;
render(): any;
private renderTabsContent;
private renderWithPanel;
private observeChildrenChanges;
private renderDeleteIcon;
private renderPopOutIcon;
private renderTabs;
updated(changedProperties: PropertyValueMap | Map): void;
private renderActiveTab;
setActiveTab(index: number, event?: Event): void;
private handlePanelClose;
private handlePanelMinimize;
private handlePanelResize;
/**
* Public method to pop in a tab from placeholder
*/
popInTab(popOutId: string): Promise;
/**
* Public method to pop out a tab
*/
popOutTab(tabIndex: number): Promise;
}
export {};
//# sourceMappingURL=tabs.component.d.ts.map