/** * Formatação numérica avançada para o po-decimal. * * Simbologia suportada: * 9 - Dígito obrigatório (preenche com zero) * > - Supressão de zero à esquerda * < - Supressão de zeros à direita (decimal flutuante) * , - Separador de grupo (convertido conforme locale) * . - Separador decimal (convertido conforme locale) * - - Sinal negativo (primeiro caractere) */ import { PoDecimalFormatParsed } from '../interfaces/po-decimal-format-parsed.interface'; import { PoDecimalFormatResult } from '../interfaces/po-decimal-format-result.interface'; export { PoDecimalFormatParsed } from '../interfaces/po-decimal-format-parsed.interface'; export { PoDecimalFormatResult } from '../interfaces/po-decimal-format-result.interface'; /** * Aplica o formato ao valor numérico, gerando a representação visual. * * @returns viewValue formatado + flag de validação (overflow = isValid false) */ export declare function applyDecimalFormat(value: number | undefined | null, parsed: PoDecimalFormatParsed, decimalSeparator: string, thousandSeparator: string): PoDecimalFormatResult; /** * Deriva os limites de dígitos do formato para compatibilidade com p-decimals-length / p-thousand-maxlength. */ export declare function getFormatLimits(parsed: PoDecimalFormatParsed): { decimalsLength: number; thousandMaxlength: number; } | null; /** * Faz o parsing da string de formato numérico. * * Regra: '.' no formato = separador decimal, ',' = separador de grupo. * Sem '.' = formato puramente inteiro. */ export declare function parseDecimalFormat(format: string): PoDecimalFormatParsed; /** * Valida se o valor digitado cabe no formato (usado durante input em tempo real). */ export declare function validateAgainstFormat(rawValue: string, parsed: PoDecimalFormatParsed, decimalSeparator: string): boolean; /** * Insere separadores de grupo baseando-se nas posições do formato original, * calculando da direita para a esquerda. Funciona tanto com formato truncado * (quando p-thousand-maxlength restringe) quanto em tamanho completo. * * Aceita digits como Array (blur, com placeholders) ou string (digitação). */ export declare function insertGroupSeparatorsFromRight(digits: Array | string, parsed: PoDecimalFormatParsed, thousandSeparator: string): string;