import { M4LOverridesStyleRules } from '../../@types/augmentations';
import { TabsNavigatorSlots } from './slots/TabsNavigatorEnum';
import { Theme } from '@mui/material/styles';
import { Sizes } from '@m4l/styles';
import { TABS_NAVIGATOR_KEY_COMPONENT } from './constants';
export type CombinedTabNavigator = TabNavigator | TabNavigatorCluster;
export interface TabNavigatorCluster {
    label: string;
    icon: string;
    children: TabNavigator[];
    onChangeSelectedId?: TabsNavigatorProps['onChangeSelectedId'];
    selectedId?: TabsNavigatorProps['selectedId'];
    variant: TabsNavigatorProps['variant'];
    maxColumnsPopover?: TabsNavigatorProps['maxColumnsPopover'];
}
export interface TabNavigator {
    id: string;
    label: string;
    icon: string;
    onClick: () => void;
    disabled?: boolean;
    onChangeSelectedId?: TabsNavigatorProps['onChangeSelectedId'];
    selectedId?: TabsNavigatorProps['selectedId'];
}
export interface TabsNavigatorProps {
    tabs: TabNavigator[];
    variant: 'horizontal' | 'vertical';
    size: Extract<Sizes, 'small' | 'medium'>;
    className?: string;
    dataTestId?: string;
    selectedId?: string;
    onChangeSelectedId?: (newSelectedId: string) => void;
    maxColumnsPopover?: 1 | 2 | 3;
}
export type TabsNavigatorOwnerState = {
    selected?: boolean;
    size?: TabsNavigatorProps['size'];
    variant?: TabsNavigatorProps['variant'];
    maxColumnsPopover?: TabsNavigatorProps['maxColumnsPopover'];
    totalTabs?: number;
};
export type TabsNavigatorSlotsType = keyof typeof TabsNavigatorSlots;
export type TabsNavigatorStyles = M4LOverridesStyleRules<TabsNavigatorSlotsType, typeof TABS_NAVIGATOR_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map