///
import { Locale } from 'date-fns';
import { IconProps, IconPropSize } from '../../icons/Icon/Icon';
import { DateRange } from '../../utils/types/Date';
import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';
import { DateTimePropView } from '../DateTimeCanary/helpers';
import { TextFieldPropForm, TextFieldPropSize, TextFieldPropStatus, TextFieldPropView, TextFieldPropWidth } from '../TextField/TextField';
export declare const datePickerPropType: readonly ["date", "date-range"];
export declare type DatePickerPropType = typeof datePickerPropType[number];
export declare const datePickerPropTypeDefault: "date";
export declare type DatePickerPropDateTimeView = DateTimePropView;
export declare const datePickerErrorTypes: readonly ["outOfRange", "invalidInputAttempt", "startDateIsGreaterThanEndDate"];
export declare type DatePickerPropValue = (TYPE extends 'date' ? 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' ? TextFieldPropWidth : never;
declare type DatePickerPropCalendarInputRef = TYPE extends 'date' ? React.Ref : never;
declare type DatePickerPropCalendarStartInputRef = TYPE extends 'date-range' ? React.Ref : never;
declare type DatePickerPropCalendarStartLeftSide = TYPE extends 'date-range' ? string | React.FC : 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;
events?: Date[];
dateTimeView?: DatePickerPropDateTimeView;
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;
format?: string;
separator?: string;
dropdownForm?: DatePickerPropDropdownForm;
width?: DatePickerPropCalendarWidth;
leftSide?: string | React.FC;
rightSide?: string | React.FC;
startFieldInputRef?: DatePickerPropCalendarStartInputRef;
endFieldInputRef?: DatePickerPropCalendarStartInputRef;
startFieldLeftSide?: DatePickerPropCalendarStartLeftSide;
startFieldRightSide?: DatePickerPropCalendarStartLeftSide;
endFieldLeftSide?: DatePickerPropCalendarStartLeftSide;
endFieldRightSide?: DatePickerPropCalendarStartLeftSide;
startFieldOnFocus?: DatePickerPropCalendarStartOnFocus;
endFieldOnFocus?: DatePickerPropCalendarStartOnFocus;
startFieldOnBlur?: DatePickerPropCalendarStartOnFocus;
endFieldOnBlur?: DatePickerPropCalendarStartOnFocus;
}, HTMLDivElement>;
export declare type DatePickerComponent = (props: DatePickerProps) => React.ReactElement | null;
export declare type DatePickerTypeDateComponent = (props: DatePickerProps<'date'>) => React.ReactElement | null;
export declare type DatePickerTypeDateRangeComponent = (props: DatePickerProps<'date-range'>) => React.ReactElement | null;
export declare type DatePickerPropOnError = (props: {
type: typeof datePickerErrorTypes[0];
stringValue: string;
dd?: string;
MM?: string;
yyyy?: string;
date: Date;
} | {
type: typeof datePickerErrorTypes[1];
stringValue: string;
dd?: string;
MM?: string;
yyyy?: string;
} | {
type: typeof datePickerErrorTypes[2];
date: [Date, Date];
}) => void;
export declare const isDateRangeParams: (params: DatePickerProps) => params is PropsWithHTMLAttributesAndRef<{
type?: "date-range" | undefined;
value?: DateRange | null | undefined;
onChange?: DatePickerPropOnChange<"date-range"> | undefined;
minDate?: Date | undefined;
maxDate?: Date | undefined;
events?: Date[] | undefined;
dateTimeView?: "slider" | "classic" | "book" | undefined;
locale?: globalThis.Locale | undefined;
children?: undefined;
onError?: DatePickerPropOnError | undefined;
id?: string | undefined;
name?: string | undefined;
disabled?: boolean | undefined;
size?: "xs" | "s" | "m" | "l" | undefined;
view?: "default" | "clear" | undefined;
form?: "default" | "round" | "brick" | "clearRound" | "roundClear" | "clearDefault" | "defaultClear" | "defaultBrick" | "brickDefault" | "brickClear" | "clearBrick" | "clearClear" | "brickRound" | "roundBrick" | undefined;
status?: "alert" | "success" | "warning" | undefined;
onFocus?: ((event: import("react").FocusEvent) => void) | undefined;
onBlur?: ((event: import("react").FocusEvent) => void) | undefined;
autoFocus?: boolean | undefined;
placeholder?: string | undefined;
readOnly?: boolean | undefined;
required?: boolean | undefined;
tabIndex?: number | undefined;
inputRef?: undefined;
ariaLabel?: string | undefined;
iconSize?: "xs" | "s" | "m" | undefined;
format?: string | undefined;
separator?: string | undefined;
dropdownForm?: "default" | "round" | "brick" | undefined;
width?: undefined;
leftSide?: string | import("react").FC> | undefined;
rightSide?: string | import("react").FC> | undefined;
startFieldInputRef?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject | null | undefined;
endFieldInputRef?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject | null | undefined;
startFieldLeftSide?: string | import("react").FC> | undefined;
startFieldRightSide?: string | import("react").FC> | undefined;
endFieldLeftSide?: string | import("react").FC> | undefined;
endFieldRightSide?: string | import("react").FC> | undefined;
startFieldOnFocus?: ((event: import("react").FocusEvent) => void) | undefined;
endFieldOnFocus?: ((event: import("react").FocusEvent) => void) | undefined;
startFieldOnBlur?: ((event: import("react").FocusEvent) => void) | undefined;
endFieldOnBlur?: ((event: import("react").FocusEvent) => void) | undefined;
}, HTMLDivElement>;
export declare const isNotDateRangeParams: (params: DatePickerProps) => params is PropsWithHTMLAttributesAndRef<{
type?: "date" | undefined;
value?: Date | null | undefined;
onChange?: DatePickerPropOnChange<"date"> | undefined;
minDate?: Date | undefined;
maxDate?: Date | undefined;
events?: Date[] | undefined;
dateTimeView?: "slider" | "classic" | "book" | undefined;
locale?: globalThis.Locale | undefined;
children?: undefined;
onError?: DatePickerPropOnError | undefined;
id?: string | undefined;
name?: string | undefined;
disabled?: boolean | undefined;
size?: "xs" | "s" | "m" | "l" | undefined;
view?: "default" | "clear" | undefined;
form?: "default" | "round" | "brick" | "clearRound" | "roundClear" | "clearDefault" | "defaultClear" | "defaultBrick" | "brickDefault" | "brickClear" | "clearBrick" | "clearClear" | "brickRound" | "roundBrick" | undefined;
status?: "alert" | "success" | "warning" | undefined;
onFocus?: ((event: import("react").FocusEvent) => void) | undefined;
onBlur?: ((event: import("react").FocusEvent) => void) | undefined;
autoFocus?: boolean | undefined;
placeholder?: string | undefined;
readOnly?: boolean | undefined;
required?: boolean | undefined;
tabIndex?: number | undefined;
inputRef?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject | null | undefined;
ariaLabel?: string | undefined;
iconSize?: "xs" | "s" | "m" | undefined;
format?: string | undefined;
separator?: string | undefined;
dropdownForm?: "default" | "round" | "brick" | undefined;
width?: "default" | "full" | undefined;
leftSide?: string | import("react").FC> | undefined;
rightSide?: string | import("react").FC> | undefined;
startFieldInputRef?: undefined;
endFieldInputRef?: undefined;
startFieldLeftSide?: undefined;
startFieldRightSide?: undefined;
endFieldLeftSide?: undefined;
endFieldRightSide?: undefined;
startFieldOnFocus?: undefined;
endFieldOnFocus?: undefined;
startFieldOnBlur?: undefined;
endFieldOnBlur?: undefined;
}, HTMLDivElement>;
export declare const datePickerPropSeparatorDefault = ".";
export declare const datePickerPropFormatDefault: string;
export declare const datePickerPropPlaceholderDefault: string;
export declare const normalizeRangeValue: (dateRange: DateRange) => DateRange;
export {};