/**
 * A utility class for parsing date-time strings using format strings.
 *
 * Supported format specifiers:
 * - `d`   : Day of the month (1-31) without leading zero.
 * - `dd`  : Day of the month (01-31) with leading zero.
 * - `M`   : Month (1-12) without leading zero.
 * - `MM`  : Month (01-12) with leading zero.
 * - `h`   : Hour (1-12) in 12-hour format without leading zero.
 * - `hh`  : Hour (01-12) in 12-hour format with leading zero.
 * - `H`   : Hour (0-23) in 24-hour format without leading zero.
 * - `HH`  : Hour (00-23) in 24-hour format with leading zero.
 * - `m`   : Minute (0-59) without leading zero.
 * - `mm`  : Minute (00-59) with leading zero.
 * - `s`   : Second (0-59) without leading zero.
 * - `ss`  : Second (00-59) with leading zero.
 * - `tt`  : AM/PM designator.
 * - `y`   : Year as the last two digits without leading zero.
 * - `yy`  : Year as the last two digits with leading zero.
 * - `yyyy`: Year as a four-digit number.
 * - `:`   : Time separator.
 * - `/`   : Date separator.
 * - `-`   : Separator (hyphen).
 * - `.`   : Separator (dot).
 * - ` `   : Separator (space).
 *
 * @public
 */
export declare class DateTimeParser {
    private static readonly _segmentRegex;
    /**
     * Attempts to parse a date-time string using the provided format.
     * Returns `null` if parsing fails or produces an invalid date.
     *
     * @param value The date-time string to parse.
     * @param format The expected format of the date-time string.
     * @param locale The locale (reserved for future use).
     * @returns The parsed Date or null.
     */
    static tryParse(value: string, format: string, locale: string): Date | null;
    /**
     * Parses a date-time string according to the given format string.
     *
     * @param value The date-time string to parse.
     * @param format The format string describing the layout.
     * @param locale The locale (reserved for future use).
     * @returns The parsed Date.
     * @throws Error if the format or value cannot be parsed.
     */
    static parse(value: string, format: string, locale: string): Date;
    /**
     * Extracts a numeric value from the input string at the given position.
     * The number of digits consumed is determined by the format segment:
     * - `yyyy` / `yyy`: up to 4 digits.
     * - All other segments (`dd`, `MM`, `HH`, `hh`, `mm`, `ss`, etc.): up to 2 digits.
     * Single-character specifiers (`d`, `M`, `H`, `h`, `m`, `s`) require at least 1 digit;
     * two-character specifiers require exactly 2.
     *
     * @param value - The full input string being parsed.
     * @param position - The current character index in `value`.
     * @param segment - The format segment (e.g., `"HH"`, `"m"`, `"yyyy"`).
     * @returns An object containing the parsed numeric `value` and the `length` of characters consumed.
     * @throws Error if fewer digits are found than the segment requires.
     */
    private static extractNumericValue;
    /**
     * Extracts the AM/PM designator from the input string at the given position.
     * Recognized patterns (case-insensitive): `"AM"`, `"PM"`, `"A.M."`, `"P.M."`,
     * and single characters `"A"` / `"P"` (for the `t` specifier).
     *
     * @param value - The full input string being parsed.
     * @param position - The current character index in `value`.
     * @returns An object with `isPm` (true for PM) and `length` of characters consumed.
     * @throws Error if no valid AM/PM designator is found at the position.
     */
    private static extractAmPm;
    /**
     * Checks whether the given Date object represents a valid point in time.
     *
     * @param date - The Date object to validate.
     * @returns `true` if the date is valid (not `NaN`), otherwise `false`.
     */
    private static isValidDate;
}
//# sourceMappingURL=DateTimeParser.d.ts.map