import * as i0 from '@angular/core'; import { PipeTransform } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; type NumberFormatStyle = 'decimal' | 'currency' | 'percent' | 'unit'; type NumberFormatUnit = 'acre' | 'bit' | 'byte' | 'celsius' | 'centimeter' | 'day' | 'degree' | 'fahrenheit' | 'fluid-ounce' | 'foot' | 'gallon' | 'gigabit' | 'gigabyte' | 'gram' | 'hectare' | 'hour' | 'inch' | 'kilobit' | 'kilobyte' | 'kilogram' | 'kilometer' | 'liter' | 'megabit' | 'megabyte' | 'meter' | 'microsecond' | 'mile' | 'mile-scandinavian' | 'milliliter' | 'millimeter' | 'millisecond' | 'minute' | 'month' | 'nanosecond' | 'ounce' | 'percent' | 'petabyte' | 'pound' | 'second' | 'stone' | 'terabit' | 'terabyte' | 'week' | 'yard' | 'year'; type NumberFormatUnitDisplay = 'short' | 'narrow' | 'long'; type NumberFormatCurrencyDisplay = 'code' | 'symbol' | 'narrowSymbol' | 'name'; interface NumberFormatOptions { locale: string; min?: number | undefined; max?: number | undefined; style: NumberFormatStyle; currency?: string | undefined; currencyDisplay?: NumberFormatCurrencyDisplay | undefined; unit?: NumberFormatUnit | undefined; unitDisplay?: NumberFormatUnitDisplay | undefined; useGrouping?: boolean | undefined; minimumIntegerDigits?: number | undefined; minimumFractionDigits?: number | undefined; maximumFractionDigits?: number | undefined; minimumSignificantDigits?: number | undefined; maximumSignificantDigits?: number | undefined; } interface NumberFormatSplittedInput { minusSign: string; integer: string; delimiter: string; fraction: string; } interface NumberFormatParsedInput { splittedInput: NumberFormatSplittedInput; cleanInput: string; value: number | null; } declare function joinSplittedInput({ minusSign, integer, delimiter, fraction }: NumberFormatSplittedInput): string; declare function canCastSplittedInputToNumber({ integer, fraction }: NumberFormatSplittedInput): boolean; declare class NumberFormat { #private; readonly locale: string; readonly min: number | undefined; readonly max: number | undefined; readonly options: Intl.NumberFormatOptions; constructor({ locale, min, max, ...options }: NumberFormatOptions); getSuffix(value: number | null): string | null; getPrefix(value: number | null): string | null; applyRange(value: number | null): number | null; parse(input: string): NumberFormatParsedInput; format(value: number | null): string; getFocusFormat(value: number | undefined | null): string; getBlurFormat(value: number | undefined | null): string; } declare class LuFormatNumberPipe implements PipeTransform { transform(value: number, options: NumberFormatOptions): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵpipe: i0.ɵɵPipeDeclaration; } declare class NumberFormatDirective implements ControlValueAccessor { #private; formatOptions: i0.InputSignal; onChange: (_value: number | undefined | null) => void; onTouched: () => void; writeValue(value: number | undefined | null): void; registerOnChange(fn: (_value: number | undefined | null) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; focus(): void; lostFocus(): void; input(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } export { LuFormatNumberPipe, NumberFormat, NumberFormatDirective, canCastSplittedInputToNumber, joinSplittedInput }; export type { NumberFormatCurrencyDisplay, NumberFormatOptions, NumberFormatParsedInput, NumberFormatSplittedInput, NumberFormatStyle, NumberFormatUnit, NumberFormatUnitDisplay };