/** * Converts a numeric value to Italian words. * * This is the main public API. It accepts any valid numeric input * (number, string, or bigint) and handles parsing internally. * * @param {number | string | bigint} value - The numeric value to convert * @returns {string} The number in Italian words * @throws {TypeError} If value is not a valid numeric type * @throws {Error} If value is not a valid number format * * @example * toCardinal(28) // 'ventotto' * toCardinal(23) // 'ventitré' * toCardinal(1000) // 'mille' * toCardinal(2000) // 'duemila' * toCardinal(1000000) // 'un milione' */ export function toCardinal(value: number | string | bigint): string; /** * Converts a numeric value to Italian ordinal words. * * Italian ordinals: primo, secondo, terzo... (1-10 irregular) * For 11+: cardinal word (drop final vowel) + -esimo * * @param {number | string | bigint} value - The numeric value to convert (positive integer) * @returns {string} The number as ordinal words (masculine form) * @throws {TypeError} If value is not a valid numeric type * @throws {RangeError} If value is negative, zero, or has a decimal part * * @example * toOrdinal(1) // 'primo' * toOrdinal(2) // 'secondo' * toOrdinal(11) // 'undicesimo' * toOrdinal(21) // 'ventunesimo' * toOrdinal(100) // 'centesimo' * toOrdinal(1000) // 'millesimo' */ export function toOrdinal(value: number | string | bigint): string; /** * Converts a numeric value to Italian currency words (Euro). * * @param {number | string | bigint} value - The currency amount to convert * @param {Object} [options] - Optional configuration * @param {boolean} [options.and=true] - Use "e" between euros and centesimi * @returns {string} The amount in Italian currency words * @throws {TypeError} If value is not a valid numeric type * @throws {Error} If value is not a valid number format * * @example * toCurrency(42.50) // 'quarantadue euro e cinquanta centesimi' * toCurrency(1) // 'un euro' * toCurrency(0.99) // 'novantanove centesimi' * toCurrency(0.01) // 'un centesimo' * toCurrency(42.50, { and: false }) // 'quarantadue euro cinquanta centesimi' */ export function toCurrency(value: number | string | bigint, options?: { and?: boolean | undefined; }): string;