/// <reference types="react" />
import { IconComponent, IconPropSize } from '@consta/icons/Icon';
import { TextFieldPropForm, TextFieldPropSize, TextFieldPropStatus, TextFieldPropView } from "../../TextField";
import { PropsWithHTMLAttributes } from "../../../utils/types/PropsWithHTMLAttributes";
import { DatePickerPropOnError } from '../types';
declare type DatePickerFieldTypeDatePropOnChange = (value: Date | null, props: {
    e: Event;
}) => void;
export declare type DatePickerFieldTypeDateProps = PropsWithHTMLAttributes<{
    className?: string;
    value?: Date | null;
    onChange?: DatePickerFieldTypeDatePropOnChange;
    onError?: DatePickerPropOnError;
    id?: string;
    name?: string;
    disabled?: boolean;
    size?: TextFieldPropSize;
    view?: TextFieldPropView;
    form?: TextFieldPropForm;
    status?: TextFieldPropStatus;
    onFocus?: React.FocusEventHandler<HTMLElement>;
    onBlur?: React.FocusEventHandler<HTMLElement>;
    autoFocus?: boolean;
    placeholder?: string;
    leftSide?: string | IconComponent;
    rightSide?: string | IconComponent;
    readOnly?: boolean;
    required?: boolean;
    tabIndex?: number;
    inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;
    ariaLabel?: string;
    iconSize?: IconPropSize;
    children?: never;
    format?: string;
    separator?: string;
    minDate?: Date;
    maxDate?: Date;
    focused?: boolean;
    label?: string;
    labelIcon?: IconComponent;
    caption?: string;
    labelPosition?: 'top' | 'left';
    withClearButton?: boolean;
}, HTMLDivElement>;
declare type UsePickerProps = {
    value?: Date | null;
    onChange?: DatePickerFieldTypeDatePropOnChange;
    onError?: DatePickerPropOnError;
    format: string;
    separator: string;
    minDate: Date;
    maxDate: Date;
};
export declare const usePicker: (props: UsePickerProps) => import("react").MutableRefObject<HTMLInputElement | null>;
export {};
