import { FieldConfig } from './field';
/**
 * Labels das opções exibidas no campo booleano de rádio (sim/não/não informado).
 */
export interface BooleanOptionsLabelConfig {
    /** Label exibida para o valor `true`. @example 'Sim' */
    true: string;
    /** Label exibida para o valor `false`. @example 'Não' */
    false: string;
    /** Label exibida quando o valor é `null`/`undefined` (não selecionado). @example 'Não informado' */
    empty?: string;
    /** Label do botão de limpar a seleção. @example 'Limpar' */
    clear?: string;
}
/**
 * Configuração para campo booleano com exibição como botões de rádio (Sim/Não).
 *
 * Exibe dois (ou três, com `showClear`) botões de rádio rotulados conforme `optionsLabel`.
 * Diferente do `booleanSwitch`, este campo é mais adequado para questionários e formulários
 * que precisam de rotação explícita entre as opções sim/não.
 */
export interface BooleanFieldConfig extends FieldConfig {
    /** Tipo do campo: sempre `'boolean'`. */
    type: 'boolean';
    /**
     * Quando `true`, os botões são empilhados verticalmente em vez de na horizontal.
     */
    verticalAlignment?: boolean;
    /**
     * Labels exibidas para as opções do campo. Obrigatório.
     * @example { true: 'Sim', false: 'Não', empty: 'Não informado', clear: 'Limpar' }
     */
    optionsLabel: BooleanOptionsLabelConfig;
    /**
     * Callback chamado quando o campo perde o foco.
     */
    onBlur?: (event: Event) => void;
    /**
     * Callback chamado quando o campo recebe foco.
     */
    onFocus?: (event: Event) => void;
    /**
     * Callback chamado quando o usuário clica em uma opção.
     */
    onClick?: (event: any) => void;
    /**
     * Quando `true`, exibe um botão de limpar a seleção.
     * O texto do botão é definido em `optionsLabel.clear`.
     */
    showClear?: boolean;
}
declare module './field' {
    interface FieldTypeMap {
        boolean: BooleanFieldConfig;
    }
}
