import type { CSSProperties } from "react";
import { Dayjs } from "dayjs";
import { PresetValueKey } from "./constant";
import { RangePickerProps as RcRangePickerProps } from "rc-picker";
import { PanelMode } from "rc-picker/es/interface";
import * as React from "react";
interface DateProps {
    picker?: "date" | "datetime";
    style?: CSSProperties;
    disabled?: boolean;
    className?: string;
}
export interface DatePickerProps extends DateProps {
    value?: number;
    defaultValue?: number;
    placeholder?: string;
    onChange?: (value: number | null, dateString: string | null) => void;
    allowClear?: boolean;
    disabledDate?: (date: Dayjs) => boolean;
    renderExtraFooter?: (mode: PanelMode) => React.ReactNode;
    showHighLight?: boolean;
}
export type TimeOptionsType = {
    label: React.ReactNode;
    value: string;
    key: string;
};
export type DateOptionsType = {
    label: React.ReactNode;
    value: string;
    key: PresetValueKey;
    generate?: () => {
        start: number | undefined;
        end: number | undefined;
    };
};
export type TimeType = {
    type: string;
    value: string | undefined | null;
    timestamp: {
        start: Dayjs | number | undefined;
        end: Dayjs | number | undefined;
    } | null;
};
export type DateFormatType = "hour";
export type QXDateRangePickerProps = DateProps & {
    value?: TimeType;
    defaultValue?: TimeType;
    placeholder?: [string, string];
    disabledDate?: (date: Dayjs) => boolean;
    onChange?: (time: TimeType) => void;
    quickSelectDateOptions?: DateOptionsType[];
    quickSelectTimeOptions?: TimeOptionsType[];
    showQuickSelect?: boolean;
    allowClear?: boolean;
    style?: CSSProperties;
    showHighLight?: boolean;
    extraFooterTime?: React.ReactNode;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    dateFormat?: DateFormatType;
    onOk?: (time: TimeType) => void;
    dropdownClassName?: string;
};
export type DateRangePickerProps = Omit<RcRangePickerProps<Dayjs>, keyof QXDateRangePickerProps | "generateConfig" | "locale"> & QXDateRangePickerProps;
export {};
