import type { returnType } from '../../_utils';
import type { ExtractPropTypes, PropType, CSSProperties } from 'vue';
import type { dkPlusSize } from '../../_interface';
import type { DateModelValue, DatePickerShortcut, DatePickerType } from './pickerTypes';
export type PopperStyle = string | CSSProperties;
export type DatePickerDefaultValue = Date | [Date, Date];
export type DatePickerDefaultTime = Date | [Date, Date];
export declare const dkDatePickerProps: {
    readonly modelValue: {
        readonly type: PropType<DateModelValue>;
        readonly default: "";
    };
    readonly readonly: returnType<BooleanConstructor, boolean>;
    readonly disabled: returnType<BooleanConstructor, boolean>;
    readonly size: returnType<PropType<dkPlusSize>, dkPlusSize | null>;
    readonly editable: returnType<BooleanConstructor, boolean>;
    readonly clearable: returnType<BooleanConstructor, boolean>;
    readonly placeholder: returnType<PropType<string>, string | null>;
    readonly startPlaceholder: returnType<PropType<string>, string | null>;
    readonly endPlaceholder: returnType<PropType<string>, string | null>;
    readonly type: returnType<PropType<DatePickerType>, DatePickerType | null>;
    readonly format: returnType<PropType<string>, string | null>;
    readonly popperClass: returnType<PropType<string>, string | null>;
    readonly popperStyle: {
        readonly type: PropType<PopperStyle>;
        readonly default: "";
    };
    readonly popperOptions: {
        readonly type: PropType<Record<string, unknown>>;
        readonly default: () => Record<string, unknown>;
    };
    readonly rangeSeparator: returnType<PropType<string>, string | null>;
    readonly defaultValue: {
        readonly type: PropType<DatePickerDefaultValue>;
        readonly default: undefined;
    };
    readonly defaultTime: {
        readonly type: PropType<DatePickerDefaultTime>;
        readonly default: undefined;
    };
    readonly valueFormat: returnType<PropType<string>, string | null>;
    readonly id: {
        readonly type: PropType<string | string[]>;
        readonly default: "";
    };
    readonly name: {
        readonly type: PropType<string | string[]>;
        readonly default: "";
    };
    readonly unlinkPanels: returnType<BooleanConstructor, boolean>;
    readonly prefixIcon: {
        readonly type: PropType<unknown>;
        readonly default: "";
    };
    readonly clearIcon: {
        readonly type: PropType<unknown>;
        readonly default: "IconClose";
    };
    readonly validateEvent: returnType<BooleanConstructor, boolean>;
    readonly disabledDate: returnType<PropType<(date: Date) => boolean>, ((date: Date) => boolean) | undefined>;
    readonly shortcuts: {
        readonly type: PropType<DatePickerShortcut[]>;
        readonly default: () => DatePickerShortcut[];
    };
    readonly cellClassName: returnType<PropType<(date: Date) => string>, ((date: Date) => string) | undefined>;
    readonly teleported: returnType<BooleanConstructor, boolean>;
    readonly emptyValues: {
        readonly type: PropType<unknown[]>;
        readonly default: undefined;
    };
    readonly valueOnClear: {
        readonly type: PropType<string | number | boolean | (() => unknown)>;
        readonly default: undefined;
    };
    readonly fallbackPlacements: {
        readonly type: PropType<string[]>;
        readonly default: () => string[];
    };
    readonly placement: returnType<PropType<string>, string | null>;
    readonly showFooter: returnType<BooleanConstructor, boolean>;
    readonly showConfirm: returnType<BooleanConstructor, boolean>;
    readonly showWeekNumber: returnType<BooleanConstructor, boolean>;
    readonly automaticDropdown: returnType<BooleanConstructor, boolean>;
    readonly width: returnType<PropType<string>, string | null>;
    readonly panelWidth: returnType<PropType<string>, string | null>;
    readonly firstDayOfWeek: returnType<NumberConstructor, number | null>;
};
export type DatePickerProps = ExtractPropTypes<typeof dkDatePickerProps>;
