import { Temporal } from 'temporal-polyfill';
import { KdsIntervalInputFormat, KdsIntervalInputUsedFormat } from './types';
export type IntervalPeriodNumericKey = "years" | "months" | "weeks" | "days";
export type IntervalDurationNumericKey = "hours" | "minutes" | "seconds" | "milliseconds";
export declare const periodNumericKeys: IntervalPeriodNumericKey[];
export declare const durationNumericKeys: IntervalDurationNumericKey[];
export declare const getMax: (key: IntervalPeriodNumericKey | IntervalDurationNumericKey) => number;
export declare const extractDurationFields: (duration: Temporal.Duration) => Record<IntervalPeriodNumericKey | IntervalDurationNumericKey, number>;
export declare const withDurationField: (duration: Temporal.Duration, key: IntervalPeriodNumericKey | IntervalDurationNumericKey, value: number) => Temporal.Duration;
export declare const createDefaultDuration: () => Temporal.Duration;
export declare const classifyDuration: (duration: Temporal.Duration) => KdsIntervalInputUsedFormat;
export declare const formatDurationToHumanReadable: (duration: Temporal.Duration, usedFormat: KdsIntervalInputUsedFormat) => string;
export declare const parseHumanReadableInterval: (input: string) => Temporal.Duration | null;
export declare const parseISOInterval: (input: string) => Temporal.Duration | null;
export declare const parseGenericInterval: (input: string) => Temporal.Duration | null;
export type IntervalValidationResult = {
    valid: true;
    type: KdsIntervalInputUsedFormat;
    negative: boolean;
    duration: Temporal.Duration;
} | {
    valid: false;
};
export declare const validateIntervalInput: (input: string, expectedFormat: KdsIntervalInputFormat) => IntervalValidationResult;
/**
 * Zero-out the fields that are NOT part of the given format, so the emitted
 * `modelValue` is always a pure date-only or time-only Duration.
 */
export declare const stripInactiveFields: (duration: Temporal.Duration, usedFormat: KdsIntervalInputUsedFormat) => Temporal.Duration;
export declare const toTitleCase: (key: string) => string;
//# sourceMappingURL=intervalUtils.d.ts.map