import { TabPanelProps as ReactAriaTabPanelProps, TabsProps as ReactAriaTabsProps } from 'react-aria-components';
import './Tabs.scss';
import { States, Sizes } from '../../core/types';
import React from 'react';
export type TabOption = {
    id: string;
    name: string;
    content?: string | React.ReactNode;
    selected?: boolean;
    disabled?: boolean;
    navigationContainerChildren?: React.ReactNode;
    notification?: {
        count?: number;
        size: Sizes | string;
        visible: boolean;
        state?: States | string;
    };
};
export type TabProps = {
    id: string;
    name: string;
    content?: string;
    selected?: boolean;
    disabled?: boolean;
    showNavigation?: boolean;
    notification?: {
        count?: number;
        size: Sizes | string;
        visible: boolean;
        state?: States | string;
    };
};
export interface MyTabsProps extends Omit<ReactAriaTabsProps, 'children'> {
    children?: React.ReactNode;
    label?: string;
    onSelectionChange?: (key: string) => void;
    selectedKey?: string;
    defaultSelectedKey?: string;
    navigationContainerChildren?: React.ReactNode;
    style?: React.CSSProperties;
    tabsStyle?: React.CSSProperties;
    tabPanelsStyle?: React.CSSProperties;
    options?: TabOption[];
    showNavigation?: boolean;
}
export interface MyTabPanelProps extends Omit<ReactAriaTabPanelProps, 'children'> {
    children?: React.ReactNode;
    id: string;
}
/**
 * Tabs component that renders a set of tabs with associated content and optional labels and descriptions.
 *
 * @param {Object} props - The properties passed to the component.
 * @param {Array<TabProps>} props.options - An array of tab options, where each option defines the tab's id, name, content, and optional notification settings.
 * @param {string} [props.label] - An optional label displayed above the tabs.
 * @param {function(string): void} props.onSelectionChange - Callback function called when the selected tab changes, receiving the new selected tab's key.
 * @param {string} [props.selectedKey] - The key of the currently selected tab.
 * @param {string} [props.defaultSelectedKey] - The key of the tab that should be selected by default.
 * @param {boolean} [props.showNavigation] - Whether to show the navigation buttons.
 * @param {React.ReactNode} [props.navigationContainerChildren] - Additional children to render inside the navigation container.
 * @param {React.CSSProperties} [props.style] - The style of the Tabs container.
 * @param {React.CSSProperties} [props.tabsStyle] - The style of the Tabs.
 * @param {React.CSSProperties} [props.tabPanelsStyle] - The style of the TabPanels.
 * @returns {JSX.Element|null} The rendered Tabs component, or null if no options are provided.
 *
 */
export declare const Tabs: (props: MyTabsProps) => import("react/jsx-runtime").JSX.Element;
export default Tabs;
