///
import { Locale } from 'date-fns';
import { IconComponent, IconPropSize } from '../../icons/_Icon/Icon';
import { DateRange } from '../../utils/types/Date';
import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';
import { CalendarAdditionalControlRenderProp, CalendarPropView } from '../Calendar/helpers';
import { TextFieldPropForm, TextFieldPropSize, TextFieldPropStatus, TextFieldPropView, TextFieldPropWidth } from '../TextField/TextField';
import { DirectionsStartEdge } from "../Popover/Popover";
export declare const datePickerPropType: readonly ["date", "date-range", "date-time"];
export declare type DatePickerPropType = typeof datePickerPropType[number];
export declare const datePickerPropTypeDefault: "date";
export declare const showPickerPropType: readonly ["date", "month", "year"];
export declare type ShowPickerPropType = typeof showPickerPropType[number];
export declare const showPickerPropTypeDefault: "date";
export declare type DatePickerPropCalendarView = CalendarPropView;
export declare const datePickerErrorTypes: readonly ["outOfRange", "invalidInputAttempt", "startDateIsGreaterThanEndDate"];
export declare type DatePickerPropValue = (TYPE extends 'date' | 'date-time' ? Date : DateRange) | null;
export declare type DatePickerPropOnChange = (props: {
value: DatePickerPropValue;
e: React.MouseEvent | Event;
}) => void;
export declare const datePickerPropDropdownForm: readonly ["default", "brick", "round"];
export declare type DatePickerPropDropdownForm = typeof datePickerPropDropdownForm[number];
export declare const datePickerPropDropdownFormDefault: "default";
declare type DatePickerPropCalendarWidth = TYPE extends 'date' | 'date-time' ? TextFieldPropWidth : never;
declare type DatePickerPropCalendarInputRef = TYPE extends 'date' | 'date-time' ? React.Ref : never;
declare type DatePickerPropCalendarStartInputRef = TYPE extends 'date-range' ? React.Ref : never;
declare type DatePickerPropCalendarStartLeftSide = TYPE extends 'date-range' ? string | IconComponent : never;
declare type DatePickerPropCalendarStartOnFocus = TYPE extends 'date-range' ? React.FocusEventHandler : never;
export declare type DatePickerProps = PropsWithHTMLAttributesAndRef<{
type?: TYPE;
value?: DatePickerPropValue;
onChange?: DatePickerPropOnChange;
minDate?: Date;
maxDate?: Date;
renderAdditionalControls?: CalendarAdditionalControlRenderProp;
events?: Date[];
calendarView?: DatePickerPropCalendarView;
locale?: Locale;
children?: never;
onError?: DatePickerPropOnError;
id?: string;
name?: string;
disabled?: boolean;
size?: TextFieldPropSize;
view?: TextFieldPropView;
form?: TextFieldPropForm;
status?: TextFieldPropStatus;
onFocus?: React.FocusEventHandler;
onBlur?: React.FocusEventHandler;
autoFocus?: boolean;
placeholder?: string;
readOnly?: boolean;
required?: boolean;
tabIndex?: number;
inputRef?: DatePickerPropCalendarInputRef;
ariaLabel?: string;
iconSize?: IconPropSize;
formatMask?: string;
separator?: string;
dropdownForm?: DatePickerPropDropdownForm;
width?: DatePickerPropCalendarWidth;
leftSide?: string | IconComponent;
rightSide?: string | IconComponent;
startFieldInputRef?: DatePickerPropCalendarStartInputRef;
endFieldInputRef?: DatePickerPropCalendarStartInputRef;
startFieldLeftSide?: DatePickerPropCalendarStartLeftSide;
startFieldRightSide?: DatePickerPropCalendarStartLeftSide;
endFieldLeftSide?: DatePickerPropCalendarStartLeftSide;
endFieldRightSide?: DatePickerPropCalendarStartLeftSide;
startFieldOnFocus?: DatePickerPropCalendarStartOnFocus;
endFieldOnFocus?: DatePickerPropCalendarStartOnFocus;
startFieldOnBlur?: DatePickerPropCalendarStartOnFocus;
endFieldOnBlur?: DatePickerPropCalendarStartOnFocus;
label?: string;
caption?: string;
labelPosition?: 'top' | 'left';
onChangeCurrentVisibleDate?: (date: Date) => void;
currentVisibleDate?: Date;
multiplicitySeconds?: number;
multiplicityMinutes?: number;
multiplicityHours?: number;
showPicker?: ShowPickerPropType;
direction?: DirectionsStartEdge;
countTextField?: 1 | 2;
relative?: boolean;
alwaysVisible?: boolean;
}, HTMLDivElement>;
export declare type DatePickerComponent = (props: DatePickerProps) => React.ReactElement | null;
export declare type DatePickerTypeComponent = (props: Omit, 'type'>) => React.ReactElement | null;
export declare type DatePickerPropOnError = (props: {
type: typeof datePickerErrorTypes[0];
stringValue: string;
dd?: string;
MM?: string;
yyyy?: string;
ss?: string;
mm?: string;
HH?: string;
date: Date;
} | {
type: typeof datePickerErrorTypes[1];
stringValue: string;
dd?: string;
MM?: string;
yyyy?: string;
ss?: string;
mm?: string;
HH?: string;
} | {
type: typeof datePickerErrorTypes[2];
date: [Date, Date];
}) => void;
export declare const getDatePickerPropSeparator: (formatProp: string | undefined) => string;
export declare const getDatePickerPropFormatTypeDate: (showPicker: ShowPickerPropType | undefined, formatMask: string | undefined) => string;
export declare const datePickerPropSeparatorDefault = "-";
export declare const datePickerPropFormatTypeDate: string;
export declare const datePickerPropFormatTypeMonth: string;
export declare const datePickerPropFormatTypeYear = "yyyy";
export declare const datePickerPropFormatTypeCalendar: string;
export declare const getDatePickerPropFormat: (separator: string | undefined) => string;
export declare const normalizeRangeValue: (dateRange: DateRange) => DateRange;
export declare const getMultiplicityTime: (format: string, multiplicityHours: number | undefined, multiplicityMinutes: number | undefined, multiplicitySeconds: number | undefined) => (number | undefined)[];
export declare const getTimeEnum: (length: number, multiplicity: number | undefined, startOfUnits: (date: Date) => Date, addUnits: (date: Date, amount: number) => Date, getItemLabel: (date: Date) => string) => string[];
export {};