/**
 * MultiStateRadio component
 * A configurable multi-state selector with click-to-cycle and long-press-for-dropdown behavior
 */
/**
 * Single option configuration for MultiStateRadio
 */
export interface MultiStateOption {
    /**
     * Display label for the option (shown in dropdown)
     */
    label: string;
    /**
     * Unique value identifier
     */
    value: string;
    /**
     * Icon name when this option is selected (e.g., 'IoCheckmarkCircle')
     */
    icon_selected?: string;
    /**
     * Icon name when this option is not selected (e.g., 'IoCheckmarkOutline')
     * If not provided, uses icon_selected
     */
    icon_unselected?: string;
    /**
     * Color for this state (Tailwind class or hex)
     * Overrides the component-level fgcolor for this option
     */
    color?: string;
    /**
     * Background color for this state (Tailwind class or hex)
     * Overrides the component-level bgcolor for this option
     */
    bgcolor?: string;
}
/**
 * Props for the MultiStateRadio component
 */
export interface MultiStateRadioProps {
    /**
     * Array of state options
     */
    data: MultiStateOption[];
    /**
     * Current selected value
     */
    value: string;
    /**
     * Callback when selection changes
     */
    onChange: (value: string) => void;
    /**
     * Icon set to use (e.g., 'io5', 'fa', 'md', 'lu')
     * Default: 'io5'
     */
    icon_set?: string;
    /**
     * Selection mode (currently only 'single' is fully supported)
     * Default: 'single'
     */
    selection?: 'single' | 'multi';
    /**
     * Default background color for the button (Tailwind class or hex)
     * Default: 'bg-muted'
     */
    bgcolor?: string;
    /**
     * Default foreground/icon color (Tailwind class or hex)
     * Default: 'text-foreground'
     */
    fgcolor?: string;
    /**
     * Interaction mode
     * - 'click-cycle': Click cycles to next state, long-press opens dropdown (default)
     * - 'click-only': Click cycles, no dropdown
     * - 'dropdown-only': Click opens dropdown, no cycling
     */
    interaction_mode?: 'click-cycle' | 'click-only' | 'dropdown-only';
    /**
     * Long press duration in milliseconds to trigger dropdown
     * Default: 500
     */
    long_press_ms?: number;
    /**
     * Whether the component is disabled
     */
    disabled?: boolean;
    /**
     * Size of the button
     * - 'sm': 28x28px, icon 16px
     * - 'md': 36x36px, icon 20px (default)
     * - 'lg': 44x44px, icon 24px
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * Optional className for the container
     */
    className?: string;
    /**
     * Accessibility label
     */
    'aria-label'?: string;
    /**
     * Remove border from the button
     * When true, the button renders without a border for a cleaner appearance
     * Default: false (button has border)
     */
    borderless?: boolean;
}
/**
 * MultiStateRadio component
 * Provides a button that cycles through states on click and shows a dropdown on long-press
 */
export declare function MultiStateRadio({ data, value, onChange, icon_set, selection, bgcolor, fgcolor, interaction_mode, long_press_ms, disabled, size, className, 'aria-label': ariaLabel, borderless, }: MultiStateRadioProps): import("react/jsx-runtime").JSX.Element;
export declare namespace MultiStateRadio {
    var displayName: string;
}
//# sourceMappingURL=multi_state_radio.d.ts.map