import { InjectionToken, type Provider, type Signal } from '@angular/core'; import { type TuiRounding } from '@taiga-ui/cdk/types'; export type TuiDecimalMode = /** * @deprecated use `TuiNumberFormatSettings[minimumFractionDigits]` instead */ 'always' | 'not-zero' | 'pad'; export type TuiDecimalSymbol = ',' | '.'; /** * TODO(v6): use `MaskitoNumberParams` from `@maskito/kit` * ```ts * export interface TuiNumberFormatSettings extends Pick< * Required, * | 'decimalSeparator' * | 'maximumFractionDigits' * | 'minimumFractionDigits' * | 'minusSign' * | 'negativePattern' * | 'thousandSeparator' * | 'thousandSeparatorPattern' * > {...} * ``` * It's a temporary workaround to preserve backward compatibility * while avoiding the need to add @maskito/kit as a peer-dependency of @taiga-ui/core. */ interface MaskitoNumberParams { decimalSeparator: string; thousandSeparator: string; thousandSeparatorPattern?(digits: string): readonly string[]; minusSign?: string; negativePattern?: 'minusFirst' | 'prefixFirst'; maximumFractionDigits?: number; minimumFractionDigits?: number; } /** * Formatting configuration for displayed numbers * TODO(v6): move TuiNumberFormatSettings (and its dependants) to `@taiga-ui/kit` */ export interface TuiNumberFormatSettings extends MaskitoNumberParams { /** * @deprecated use `maximumFractionDigits` instead */ readonly precision: number; /** * Rounding method. */ readonly rounding: TuiRounding; /** * Decimal part display mode. ('pad' by default) */ readonly decimalMode: TuiDecimalMode; } export declare const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings; /** * Formatting configuration for displayed numbers * TODO(v6): move to @taiga-ui/kit and refactor to * ```ts * import {maskitoWithNumberDefaults} from '@maskito/kit'; * import {LOCALE_ID} from '@angular/core'; * * export const TUI_NUMBER_FORMAT = new InjectionToken>( * ngDevMode ? 'TUI_NUMBER_FORMAT' : '', * { * factory: () => * signal({ * ...maskitoWithNumberDefaults({locale: inject(LOCALE_ID)}), * maximumFractionDigits: Number.NaN, * rounding: 'truncate', * decimalMode: 'pad', * }) * }, ); * ``` */ export declare const TUI_NUMBER_FORMAT: InjectionToken>; export declare function tuiNumberFormatProvider(options: Partial): Provider; export {};