export type SegmentType = 'day' | 'month' | 'year' | 'hour' | 'minute' | 'second' | 'ampm' | 'separator'; export type DateSegmentType = 'day' | 'month' | 'year'; export type TimeSegmentType = 'hour' | 'minute' | 'second' | 'ampm'; export interface Segment { type: SegmentType; token: string; startIndex: number; endIndex: number; length: number; editable: boolean; } /** * Parse a date format string into an array of segments. * * @example * parseFormatToSegments('DD/MM/YYYY') * // Returns: * // [ * // { type: 'day', token: 'DD', startIndex: 0, endIndex: 2, length: 2, editable: true }, * // { type: 'separator', token: '/', ... }, * // { type: 'month', token: 'MM', ... }, * // ... * // ] */ export declare const parseFormatToSegments: (format: string) => Segment[]; export declare const getEditableSegments: (format: string) => Segment[]; export declare const getSegmentAtPosition: (segments: Segment[], position: number) => Segment | undefined; export declare const getEditableSegmentIndex: (segments: Segment[], segment: Segment) => number; export declare const getNextEditableSegment: (segments: Segment[], currentSegment: Segment) => Segment | undefined; export declare const getPreviousEditableSegment: (segments: Segment[], currentSegment: Segment) => Segment | undefined; export declare const getFirstEditableSegment: (segments: Segment[]) => Segment | undefined; export declare const getLastEditableSegment: (segments: Segment[]) => Segment | undefined; export declare const isDateSegment: (type: SegmentType) => type is DateSegmentType; export declare const isTimeSegment: (type: SegmentType) => type is TimeSegmentType;