export interface TimeValues { hh: number | null; mm: number | null; ss: number | null; } export interface NormalizedSegment { text: string; value: number | null; carryover: string; } export interface ColumnConfig { type: 'hours' | 'minutes' | 'seconds'; values: string[]; format: string; disabledValues?: (number | string)[]; } export declare const getColumnsFromFormat: (format: string, multiplicityMinutes?: number, multiplicitySeconds?: number) => ColumnConfig[]; export declare const parseTimeString: (timeString: string, format: string) => TimeValues; export declare const buildTimeString: (timeValues: TimeValues, format: string) => string; export declare const isTimeDisabled: (timeValues: TimeValues, min?: string | Date, max?: string | Date, format?: string) => boolean; export declare const delimiter = ":"; export declare const range: (number: number, padLength?: number, step?: number) => string[]; export declare const roundToMultiplicity: (value: number, step?: number) => number; /** * Разбирает границу времени (min/max) в объект TimeValues. * Принимает строку в формате HH:mm / HH:mm:ss или объект Date. */ export declare const parseTimeBoundary: (val: string | Date | undefined, format: string) => TimeValues | null; /** * Переводит TimeValues в количество секунд с начала суток. * null-значения трактуются как 0. */ export declare const toTotalSeconds: (timeValues: TimeValues) => number; /** * Прижимает время к нижней границе (min) с учётом кратности. * * 1. При выборе часа корректируем минуты до ближайшей кратной ≥ min.mm. * Если кратная ≥ 60 — оставляем как есть; isTimeDisabled отклонит клик. * 2. Если итоговое время всё ещё < min — корректируем секунды до ближайшей кратной ≥ min.ss. * При переполнении секунд (clamped ≥ 60) переходим на следующую кратную минуту с ss=0. * Если и nextMM ≥ 60 — isTimeDisabled отклонит клик. */ export declare const clampTimeToMin: (timeValues: TimeValues, minParsed: TimeValues, column: "hours" | "minutes", activeFormat: string, multiplicityMinutes?: number, multiplicitySeconds?: number) => TimeValues; /** * Прижимает время к верхней границе (max) с учётом кратности. * * 1. При выборе часа корректируем минуты до ближайшей кратной ≤ max.mm. * 2. Если итоговое время всё ещё > max — корректируем секунды до ближайшей кратной ≤ max.ss. */ export declare const clampTimeToMax: (timeValues: TimeValues, maxParsed: TimeValues, column: "hours" | "minutes", activeFormat: string, multiplicityMinutes?: number, multiplicitySeconds?: number) => TimeValues; export declare const animateScrollTo: (element: HTMLDivElement, targetScrollTop: number, duration?: number) => void; //# sourceMappingURL=index.d.ts.map