import { FieldConfig } from './field';
/**
 * Representa uma opção individual exibida no grupo de radio buttons.
 */
export declare class RationButtonOption {
    /** Label do texto exibido ao lado do radio button. */
    label: string;
    /** Valor associado à opção. Armazenado no modelo quando selecionado. */
    value?: any;
    constructor(config: RationButtonOption);
}
/**
 * Configuração para campo de seleção única com radio buttons.
 *
 * Exibe um grupo de radio buttons onde o usuário pode selecionar exatamente uma opção.
 * A lista de opções é definida estaticamente via `options`.
 *
 * Use quando o número de opções é pequeno (até ~5 itens) e todas devem estar visíveis.
 * Para listas longas, prefira `type: 'enum'` com dropdown.
 */
export interface RadioButtonFieldConfig extends FieldConfig {
    /** Tipo do campo: sempre `'radioButton'`. */
    type: 'radioButton';
    /**
     * Quando `true`, os radio buttons são exibidos verticalmente (empilhados).
     * Por padrão, são exibidos horizontalmente.
     */
    verticalAlignment?: boolean;
    /**
     * Label do botão de limpar a seleção. Exibido quando `showClear: true`.
     * @example 'Limpar'
     */
    clearLabel?: string;
    /**
     * Lista de opções disponíveis para seleção. Obrigatório.
     * @example [{ label: 'Masculino', value: 'M' }, { label: 'Feminino', value: 'F' }]
     */
    options: RationButtonOption[];
    /** Callback chamado quando o campo perde o foco. */
    onBlur?: (event: Event) => void;
    /** Callback chamado quando o campo recebe foco. */
    onFocus?: (event: FocusEvent) => void;
    /** Callback chamado quando o usuário clica em uma opção. */
    onClick?: (event: any) => void;
    /**
     * Quando `true`, exibe um botão para limpar a seleção atual.
     * O texto do botão é definido em `clearLabel`.
     */
    showClear?: boolean;
}
declare module './field' {
    interface FieldTypeMap {
        radioButton: RadioButtonFieldConfig;
    }
}
