import { PureComponent, type KeyboardEvent as ReactKeyboardEvent, type ReactNode } from "react";
import { type WrappedComponentProps } from "react-intl";
import { type WeekStart } from "@gooddata/sdk-model";
import { type IAccessibilityConfigBase } from "../typings/accessibility.js";
import { type IAlignPoint } from "../typings/positioning.js";
/**
 * @internal
 */
export interface IDatePickerOwnProps {
    accessibilityConfig?: IAccessibilityConfigBase;
    date?: Date;
    className?: string;
    placeholder?: string;
    onChange?: (selectedData: Date) => void;
    onBlur?: (selectedDate: string) => void;
    onValidateInput?: (value: string) => void;
    resetOnInvalidValue?: boolean;
    size?: string;
    tabIndex?: number;
    alignPoints?: IAlignPoint[];
    onAlign?: (align: string) => void;
    locale?: string;
    dateFormat?: string;
    weekStart?: WeekStart;
    onDateInputKeyDown?: (e: ReactKeyboardEvent<HTMLInputElement>) => void;
}
export type DatePickerProps = IDatePickerOwnProps & WrappedComponentProps;
interface IDatePickerState {
    align: string;
    selectedDate: Date | undefined;
    monthDate: Date | undefined;
    isOpen: boolean;
    inputValue: string;
}
export declare function parseDate(str: string, dateFormat: string): Date | undefined;
export declare class WrappedDatePicker extends PureComponent<DatePickerProps, IDatePickerState> {
    private rootRef;
    private datePickerContainerRef;
    private inputRef;
    private datePickerId;
    static defaultProps: {
        className: string;
        date: Date;
        placeholder: string;
        onChange: () => void;
        onBlur: () => void;
        resetOnInvalidValue: boolean;
        size: string;
        tabIndex: number;
        alignPoints: {
            align: string;
        }[];
        onAlign: () => void;
        dateFormat: string;
        weekStart: "Sunday";
    };
    constructor(props: DatePickerProps);
    componentDidMount(): void;
    UNSAFE_componentWillReceiveProps(nextProps: DatePickerProps): void;
    componentWillUnmount(): void;
    private handleClickOutside;
    componentDidUpdate(_prevProps: DatePickerProps, prevState: IDatePickerState): void;
    private setComponentRef;
    private getInputClasses;
    private getComponentClasses;
    private getOverlayWrapperClasses;
    resizeHandler: import("lodash-es").DebouncedFunc<() => void>;
    private updateDate;
    private handleInputBlur;
    private handleInputChanged;
    private handleDayChanged;
    private handleMonthChanged;
    private handleCustomDayClick;
    private normalizeDate;
    private alignDatePicker;
    private onKeyDown;
    private handleWrapperClick;
    render(): ReactNode;
}
/**
 * @internal
 */
export declare class Datepicker extends PureComponent<IDatePickerOwnProps> {
    render(): import("react/jsx-runtime").JSX.Element;
}
export {};
//# sourceMappingURL=Datepicker.d.ts.map