import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';
import { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';
import { AddonConfig } from '../../addon-config';
import { FieldConfig } from './field';
type stringFn = () => string | string;
/**
 * Configuração para campos numéricos inteiros ou de número legado.
 *
 * @deprecated Use `BignumberFieldConfig` com `type: 'number'` ou `'double'` para novas
 * implementações. Esta interface está mantida por compatibilidade retro-ativa.
 *
 * - `'integer'` — campo de número inteiro.
 * - `'legacyNumber'` — campo numérico legado (comportamento antigo).
 */
export interface NumberFieldConfig extends FieldConfig {
    /**
     * `'integer'` — campo numérico inteiro.
     * `'legacyNumber'` — campo numérico legado.
     */
    type: 'integer' | 'legacyNumber';
    /**
     * Opções de localização numérica.
     * @deprecated Não é mais necessário. Remova se presente.
     */
    numberLocaleOptions?: NumberLocaleOptions;
    /**
     * Controla o autocomplete nativo do browser.
     */
    browserAutocomplete?: boolean;
    /**
     * Número total de dígitos aceitos. Pode ser função para controle dinâmico.
     */
    precision?: Function | number;
    /**
     * Número de casas decimais. Pode ser função para controle dinâmico.
     */
    scale?: (() => number) | number;
    /**
     * Alinhamento do texto no campo.
     */
    alignTo?: NumberAlignmentOption;
    /**
     * Máscara de entrada. Pode ser string estática ou função.
     */
    mask?: stringFn | string;
    /**
     * Addon exibido à esquerda do campo.
     */
    leftAddon?: AddonConfig;
    /**
     * Addon exibido à direita do campo.
     */
    rightAddon?: AddonConfig;
    /**
     * Quando `true`, usa o componente de número localizado.
     */
    localizedNumber?: boolean;
    /** 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 a máscara é completamente preenchida. */
    onComplete?: (event: any) => void;
    /** Callback chamado a cada alteração no valor do input. */
    onInput?: (event: Event) => void;
}
declare module './field' {
    interface FieldTypeMap {
        integer: NumberFieldConfig;
        legacyNumber: NumberFieldConfig;
    }
}
export {};
