/**
 * Position options for the switch label
 */
export type SwitchLabelPosition = "start" | "end";
/**
 * State variants for the switch component
 */
export type SwitchState = 'default' | 'disabled' | 'invalid';
/**
 * Switch component props
 */
export interface SwitchProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
    /** Unique identifier for the switch input */
    id: string;
    /** Whether the switch is checked (controlled mode) */
    checked?: boolean;
    /** Function called when the switch state changes */
    onChange?: (checked: boolean) => void;
    /** Label for the switch — pass a string for default styling, or a ReactNode for full control */
    label?: React.ReactNode;
    /** Optional description — pass a string for default styling, or a ReactNode for full control */
    description?: React.ReactNode;
    /** The state of the switch (default, disabled, invalid) */
    state?: SwitchState;
    /** Position of the label relative to the switch */
    labelPosition?: SwitchLabelPosition;
    /** Optional theme overrides */
    theme?: SwitchThemeOverrides;
}
/**
 * Switch theme configuration
 */
export interface SwitchTheme {
    container: string;
    track: string;
    thumb: string;
    description: string;
}
/**
 * Switch theme overrides
 */
export interface SwitchThemeOverrides {
    container?: string;
    track?: string;
    thumb?: string;
    description?: string;
}
