export interface CurrencyOptions { name: string; plural: string; symbol: string; singular?: string; numberSpecificForms?: Record; fractionalUnit: { name: string; plural: string; singular?: string; numberSpecificForms?: Record; symbol: string; }; } export type ConverterOptions = { currency?: boolean; ignoreDecimal?: boolean; ignoreZeroCurrency?: boolean; doNotAddOnly?: boolean; includeZeroFractional?: boolean; currencyOptions?: CurrencyOptions; gender?: 'masculine' | 'feminine'; useAnd?: boolean; formal?: boolean; decimalStyle?: 'digit' | 'fraction'; }; export type OrdinalOptions = { gender?: 'masculine' | 'feminine'; formal?: boolean; }; export type ToWordsOptions = { localeCode?: string; converterOptions?: ConverterOptions; }; export interface ConstructorOf { new (...args: unknown[]): T; } export type NumberWordMap = { number: number | bigint; value: string | [string, string]; singularValue?: string; feminineValue?: string; masculineValue?: string; }; export type OrdinalWordMap = { number: number | bigint; value: string; }; export type NumberInput = number | bigint | string; export type PluralFormsMapping = { [scaleNumber: number]: { dual?: string; paucal?: string; plural?: string; }; }; export type PaucalConfig = { min: number; max: number; }; export type LocaleConfig = { currency: CurrencyOptions; texts: { and: string; minus: string; only: string; point: string; }; numberWordsMapping: NumberWordMap[]; exactWordsMapping?: NumberWordMap[]; ordinalWordsMapping?: OrdinalWordMap[]; ordinalSuffix?: string; ordinalPrefix?: string; ordinalExactWordsMapping?: OrdinalWordMap[]; namedLessThan1000?: boolean; scaleFirst?: boolean; splitWord?: string; ignoreZeroInDecimals?: boolean; decimalLengthWordMapping?: Record; fractionDenominatorMapping?: Record; fractionSingularRule?: 'slavic'; ignoreOneForWords?: string[]; pluralMark?: string; pluralWords?: string[]; pluralWordsOnlyWhenTrailing?: string[]; pluralForms?: PluralFormsMapping; paucalConfig?: PaucalConfig; noSplitWordAfter?: string[]; onlyInFront?: boolean; trim?: boolean; useTrailingForCurrency?: boolean; formalConfig?: FormalConfig; }; export interface LocaleInterface { config: LocaleConfig; } export type FormalConfig = { numberWordsMapping?: NumberWordMap[]; exactWordsMapping?: NumberWordMap[]; ordinalWordsMapping?: OrdinalWordMap[]; ordinalExactWordsMapping?: OrdinalWordMap[]; currency?: CurrencyOptions; ignoreOneForWords?: string[]; };