import { PrefixTree } from "../trie"; import { Datum, Month, MonthDatum, Weekday } from "./core"; import { Comparator } from "../collections"; export declare type MatchStrategy = (prefixTree: PrefixTree[]>, value: string) => V | undefined; export declare function uniqueMatch(prefixTree: PrefixTree[]>, value: string): V | undefined; export declare class DatumLookup { private readonly data; private readonly prefixTree; constructor(data: Datum[], comparator?: Comparator); parse(value: string, strategy?: MatchStrategy): V; get pattern(): string; private get max(); protected get characters(): string[]; } export declare function numberOf(value: string): number; export declare type Numeral = Datum; export declare class Numerals extends DatumLookup { private locale; constructor(data: Datum[], locale: string); static cache: { [key: string]: Numerals; }; static get(locale: string, additionalData?: Numeral[]): Numerals; static create(locale: string, additionalData?: Numeral[]): Numerals; static generateData(locale: string): Numeral[]; parse(value: string): number; get pattern(): string; format(value: number): string; } export declare const numberFormatter: (locale: string) => Intl.NumberFormat; export declare class Months extends DatumLookup { private readonly numerals; constructor(data: MonthDatum[], locale: string); parse(value: string): Month; } export declare class Weekdays extends DatumLookup { parse(value: string): Weekday; }