import type { DatePickerOperator, DatePickerUnit, DatePickerValue, SpecificDatePickerOperator, SpecificDatePickerValue } from "../types";
import type { Tab } from "./types";
export declare function isSpecificValue(value?: DatePickerValue): value is SpecificDatePickerValue;
export declare function getTabs(availableOperators: ReadonlyArray<DatePickerOperator>): Tab[];
export declare function getDefaultValue(): SpecificDatePickerValue;
export declare function getOperatorDefaultValue(operator: SpecificDatePickerOperator): SpecificDatePickerValue;
export declare function canSetTime(value: SpecificDatePickerValue, availableUnits: ReadonlyArray<DatePickerUnit>): boolean;
export declare function setOperator(value: SpecificDatePickerValue, operator: SpecificDatePickerOperator): SpecificDatePickerValue;
export declare function getDate(value: SpecificDatePickerValue): Date;
export declare function setDateTime(value: SpecificDatePickerValue, date: Date, hasTime: boolean): {
    values: Date[];
    hasTime: boolean;
    type: "specific";
    operator: "=" | "<" | ">" | "between";
};
export declare function setDateTimeRange(value: SpecificDatePickerValue, dateRange: [Date, Date], hasTime: boolean): {
    values: [Date, Date];
    hasTime: boolean;
    type: "specific";
    operator: "=" | "<" | ">" | "between";
};
export declare function isDateRange(value: Date[]): value is [Date, Date];
export declare function setDatePart(value: Date, date: Date): Date;
export declare function setTimePart(value: Date, time: Date): Date;
export declare function clearTimePart(value: Date): Date;
export declare function coerceValue({ type, operator, values, hasTime, }: SpecificDatePickerValue): SpecificDatePickerValue;
