import { HTMLAttributes } from 'react';
import { OptionStatus } from '../enums/Options';
/**
 * Interface para definir uma alternativa
 */
export interface Alternative {
    value: string;
    label: string;
    status?: OptionStatus;
    disabled?: boolean;
    description?: string;
}
/**
 * Props do componente AlternativesList
 */
export interface AlternativesListProps {
    /** Lista de alternativas */
    alternatives: Alternative[];
    /** Nome do grupo de radio */
    name?: string;
    /** Valor selecionado por padrão */
    defaultValue?: string;
    /** Valor controlado */
    value?: string;
    /** Callback quando uma alternativa é selecionada */
    onValueChange?: (value: string) => void;
    /** Se o componente está desabilitado */
    disabled?: boolean;
    /** Layout das alternativas */
    layout?: 'default' | 'compact' | 'detailed';
    /** Classes CSS adicionais */
    className?: string;
    /** Modo de exibição: interativo (com radios funcionais) ou readonly (apenas visual) */
    mode?: 'interactive' | 'readonly';
    /** Valor selecionado pelo usuário (apenas para modo readonly) */
    selectedValue?: string;
}
/**
 * Componente reutilizável para exibir lista de alternativas com RadioGroup
 *
 * Suporta dois modos:
 * - `interactive`: Permite interação com radios (padrão)
 * - `readonly`: Apenas exibição visual dos estados
 *
 * @example
 * ```tsx
 * // Modo interativo (padrão)
 * <AlternativesList
 *   mode="interactive"
 *   alternatives={[
 *     { value: "a", label: "Alternativa A", status: "correct" },
 *     { value: "b", label: "Alternativa B", status: "incorrect" },
 *     { value: "c", label: "Alternativa C" }
 *   ]}
 *   defaultValue="a"
 *   onValueChange={(value) => console.log(value)}
 * />
 *
 * // Modo readonly - mostra seleção do usuário
 * <AlternativesList
 *   mode="readonly"
 *   selectedValue="b"  // O que o usuário selecionou
 *   alternatives={[
 *     { value: "a", label: "Resposta A", status: "correct" },  // Mostra como correta
 *     { value: "b", label: "Resposta B" },  // Mostra radio selecionado + badge incorreto
 *     { value: "c", label: "Resposta C" }
 *   ]}
 * />
 * ```
 */
declare const AlternativesList: ({ alternatives, name, defaultValue, value, onValueChange, disabled, layout, className, mode, selectedValue, }: AlternativesListProps) => import("react/jsx-runtime").JSX.Element;
interface HeaderAlternativeProps extends HTMLAttributes<HTMLDivElement> {
    title: string;
    subTitle: string;
    content: string;
}
declare const HeaderAlternative: import("react").ForwardRefExoticComponent<HeaderAlternativeProps & import("react").RefAttributes<HTMLDivElement>>;
export { AlternativesList, HeaderAlternative };
//# sourceMappingURL=Alternative.d.ts.map