/**
 * DataOkMultiState component
 * Pre-configured multi-state selector for Data OK use case
 * Provides OK, Not OK, and Pending states with appropriate icons and colors
 * Uses direct icon imports for reliability
 */
import React from 'react';
/**
 * Data OK state values
 */
export type DataOkState = 'ok' | 'not_ok' | 'pending';
/**
 * State configuration for customization
 */
export interface DataOkStateConfig {
    /**
     * Display label for the state
     */
    label: string;
    /**
     * Icon component to render
     */
    icon: React.ComponentType<{
        className?: string;
        style?: React.CSSProperties;
    }>;
    /**
     * Color for the icon (hex or Tailwind class)
     * Note: Fc icons have built-in colors, so this mainly affects custom icons
     */
    color?: string;
}
/**
 * Props for the DataOkMultiState component
 */
export interface DataOkMultiStateProps {
    /**
     * Current state value
     */
    value: DataOkState;
    /**
     * Callback when state changes
     */
    onChange: (value: DataOkState) => void;
    /**
     * Whether the component is disabled
     */
    disabled?: boolean;
    /**
     * Size of the button
     * - 'sm': 28x28px, icon 16px (default)
     * - 'md': 36x36px, icon 20px
     * - 'lg': 44x44px, icon 24px
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * 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
     * Default: 500
     */
    long_press_ms?: number;
    /**
     * Optional className for the container
     */
    className?: string;
    /**
     * Accessibility label
     */
    'aria-label'?: string;
    /**
     * Custom state configurations to override defaults
     * Provide partial overrides - unspecified states use defaults
     */
    state_config?: Partial<Record<DataOkState, Partial<DataOkStateConfig>>>;
    /**
     * Custom hover background class
     * Default: 'hover:bg-muted'
     * Examples: 'hover:bg-accent', 'hover:bg-gray-100', 'hover:bg-slate-100'
     */
    hover_class?: string;
    /**
     * Show border around button
     * Default: true
     */
    show_border?: boolean;
    /**
     * States to hide from user selection.
     * Hidden states will still display if current value matches,
     * but cannot be selected via click-cycle or dropdown.
     * @example ['pending'] - Users can only select 'ok' or 'not_ok'
     */
    hidden_states?: DataOkState[];
}
/**
 * DataOkMultiState component
 * A preset multi-state selector for data validation status
 *
 * @example
 * ```tsx
 * const [status, setStatus] = useState<DataOkState>('pending');
 *
 * <DataOkMultiState
 *   value={status}
 *   onChange={setStatus}
 * />
 * ```
 *
 * @example Custom icons/labels
 * ```tsx
 * <DataOkMultiState
 *   value={status}
 *   onChange={setStatus}
 *   state_config={{
 *     ok: { label: 'Approved' },
 *     pending: { label: 'Under Review' },
 *   }}
 * />
 * ```
 */
export declare function DataOkMultiState({ value, onChange, disabled, size, interaction_mode, long_press_ms, className, 'aria-label': ariaLabel, state_config, hover_class, show_border, hidden_states, }: DataOkMultiStateProps): import("react/jsx-runtime").JSX.Element;
export declare namespace DataOkMultiState {
    var displayName: string;
}
/**
 * Utility to convert boolean to DataOkState
 * For backward compatibility with existing data_ok_checked boolean prop
 */
export declare function boolean_to_data_ok_state(checked: boolean): DataOkState;
/**
 * Utility to convert DataOkState to boolean
 * For backward compatibility - 'ok' = true, everything else = false
 */
export declare function data_ok_state_to_boolean(state: DataOkState): boolean;
/**
 * Get the default state configurations
 * Useful if consumers want to see or extend the defaults
 */
export declare function get_default_state_config(): Record<DataOkState, DataOkStateConfig>;
//# sourceMappingURL=data_ok_multi_state.d.ts.map