import { SegmentType } from './DateField.types'; export interface TryAppendDigitResult { /** Buffer state after the append. Unchanged when `rejected` is true. */ newBuffer: string; /** True when the segment completed and focus should auto-advance. */ shouldAdvance: boolean; /** True when the digit was refused (invalid char, out-of-range, buffer full). */ rejected: boolean; } /** * Per-segment input validation with intermediate-state awareness. Decides * whether a typed digit is accepted (buffer grows), accepted-with-pad (e.g. * "5" in empty month → "05"), or rejected ("13" for month). * * Pure; entirely driven by the (type, buffer, digit) tuple. Cross-segment * validity (Feb 30) is NOT checked here — that's `deriveValue`'s job. * * - Day uses a fixed max of 31; month-dependent day max is intentionally * deferred — invalid combinations surface as cross-segment errors. * - Year accepts any 4-digit value 0000-9999; `minDate`/`maxDate` narrow the * date as a whole on blur, not the digits accepted here. */ export declare const tryAppendDigit: (type: SegmentType, buffer: string, digit: string) => TryAppendDigitResult; /** Re-export so `formatSegment` and `tryAppendDigit` share the same max-length * constants without a circular dep. */ export declare const SEGMENT_MAX_LENGTH: Record;