import { PureComponent, KeyboardEvent } from 'react';
import { Size, MonthFormat, type SizeSmall, type SizeMedium, type SizeLarge } from '../common';
import { WithInputAttributesProps } from '../inputs/contexts';
export interface DateLookupProps {
    id?: string;
    value: Date | null;
    min?: Date | null;
    max?: Date | null;
    size?: SizeSmall | SizeMedium | SizeLarge;
    placeholder?: string;
    label?: string;
    'aria-labelledby'?: string;
    monthFormat?: `${MonthFormat}`;
    disabled?: boolean;
    clearable?: boolean;
    onChange: (date: Date | null) => void;
    onFocus?: () => void;
    onBlur?: () => void;
}
type DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;
interface DateLookupState {
    originalDate: Date | null;
    open: boolean;
}
declare class DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {
    props: DateLookupPropsWithInputAttributes & Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;
    static defaultProps: {
        value: null;
        min: null;
        max: null;
        size: Size.MEDIUM;
        placeholder: string;
        label: string;
        monthFormat: MonthFormat.LONG;
        disabled: false;
        clearable: false;
    };
    element: import("react").RefObject<HTMLDivElement>;
    constructor(props: DateLookup['props']);
    componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes): void;
    open: () => void;
    discard: () => void;
    close: () => void;
    handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void;
    focusOn: (preferredElement: string, fallbackElement?: string) => void;
    handleDateChange: (date: Date | null) => void;
    handleDateSelect: (date: Date) => void;
    getCalendar: () => import("react").JSX.Element;
    handleClear: () => void;
    render(): import("react").JSX.Element;
}
export declare const DateLookupWithoutInputAttributes: typeof DateLookup;
declare const WrappedDateLookup: {
    (props: Omit<DateLookupPropsWithInputAttributes, "inputAttributes">): import("react").JSX.Element;
    displayName: string;
};
export default WrappedDateLookup;
//# sourceMappingURL=DateLookup.d.ts.map