import { SxProps, Theme } from '@mui/material/styles';
import { TabsProps as MuiTabsProps } from '@mui/material/Tabs';
import * as React from "react";
export type TabsItem = {
    key: string;
    label: React.ReactNode;
    content: React.ReactNode;
    disabled?: boolean;
    icon?: React.ReactNode;
    iconPosition?: "start" | "end" | "top" | "bottom";
    ariaLabel?: string;
};
export type TabsAppearance = "default" | "card";
export interface TabsProps extends Omit<MuiTabsProps, "children" | "value" | "onChange"> {
    /** 현재 선택된 탭 인덱스 */
    value: number;
    /** 탭 변경 이벤트 */
    onChange: (event: React.SyntheticEvent, newValue: number) => void;
    /** 탭 방향 */
    orientation?: "horizontal" | "vertical";
    /** 탭 변형 */
    variant?: "standard" | "scrollable" | "fullWidth";
    /** 탭 목록 */
    items: TabsItem[];
    /** 탭 포커스 시 자동 선택 여부 */
    selectionFollowsFocus?: boolean;
    /** 숨겨진 패널도 DOM 유지 여부 */
    keepMounted?: boolean;
    /** 탭 스타일 프리셋 */
    appearance?: TabsAppearance;
    /** 루트 wrapper 스타일 */
    sx?: SxProps<Theme>;
    /** MuiTabs 스타일 */
    tabsSx?: SxProps<Theme>;
    /** 개별 Tab 공통 스타일 */
    tabSx?: SxProps<Theme>;
    /** 개별 TabPanel 공통 스타일 */
    panelSx?: SxProps<Theme>;
}
/**
 * 접근성을 고려한 Tabs 컴포넌트
 * - tablist / tab / tabpanel 연결
 * - 중복되지 않는 id 생성
 * - ripple 제거 시 focus-visible 스타일 유지
 */
declare const Tabs: React.ForwardRefExoticComponent<Omit<TabsProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
export default Tabs;
