import type { CSSProperties, HTMLAttributes, ReactNode, TdHTMLAttributes, ThHTMLAttributes } from 'react';
export type TableSize = 'large' | 'medium' | 'small';
export type TableVariant = 'default' | 'minimal' | 'bordered';
export type SortDirection = 'asc' | 'desc' | null;
export type TextEmphasis = 'primary' | 'secondary';
export interface TableRootProps extends HTMLAttributes<HTMLTableElement> {
    children: ReactNode;
    className?: string;
    style?: CSSProperties;
    size?: TableSize;
    variant?: TableVariant;
    hoverable?: boolean;
}
export interface TableHeadProps extends HTMLAttributes<HTMLTableSectionElement> {
    children: ReactNode;
    className?: string;
    style?: CSSProperties;
}
export interface TableBodyProps extends HTMLAttributes<HTMLTableSectionElement> {
    children: ReactNode;
    className?: string;
    style?: CSSProperties;
}
export interface TableRowProps extends HTMLAttributes<HTMLTableRowElement> {
    children: ReactNode;
    className?: string;
    style?: CSSProperties;
}
export interface TableHeaderCellProps extends ThHTMLAttributes<HTMLTableCellElement> {
    children?: ReactNode;
    className?: string;
    style?: CSSProperties;
    bold?: boolean;
    emphasis?: TextEmphasis;
    sortable?: boolean;
    sortDirection?: SortDirection;
    onSort?: (direction: SortDirection) => void;
    width?: string | number;
    /** 접근성을 위한 scope 속성 */
    scope?: 'col' | 'row' | 'colgroup' | 'rowgroup';
}
export interface TableCellProps extends TdHTMLAttributes<HTMLTableCellElement> {
    children?: ReactNode;
    className?: string;
    style?: CSSProperties;
    emphasis?: TextEmphasis;
    width?: string | number;
}
export interface TableEditableCellProps extends Omit<TdHTMLAttributes<HTMLTableCellElement>, 'onChange'> {
    value: string;
    onChange: (value: string) => void;
    className?: string;
    style?: CSSProperties;
    emphasis?: TextEmphasis;
    width?: string | number;
    placeholder?: string;
    disabled?: boolean;
    maxLength?: number;
    /** 접근성을 위한 input aria-label */
    'aria-label'?: string;
}
//# sourceMappingURL=types.d.ts.map