import { ErrorObject } from '@vuelidate/core';
import { ExtractPropTypes, PropType } from 'vue';
export declare const modes: string[];
export type PresetRanges = {
    label: string;
    range: string[];
    style?: Record<string, string>;
};
type DateModelSingle = Date | string;
type DateModelRange = Date[] | string[];
type DateModelMonth = {
    month: number | string;
    year: number | string;
};
type DateModelMonthRange = DateModelMonth[];
type DateModelTime = {
    hours: number | string;
    minutes: number | string;
    seconds?: number | string;
};
type DateModelTimeRange = DateModelTime[];
type DateModelWeek = [Date, Date] | [string, string];
export type DateModel = DateModelSingle | DateModelRange | DateModelMonth | DateModelMonthRange | DateModelTime | DateModelTimeRange | DateModelWeek;
declare const Props: {
    modelValue: {
        type: PropType<DateModel>;
        required: boolean;
        description: string;
    };
    value: {
        type: PropType<DateModel>;
        required: boolean;
        description: string;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    disabledDates: {
        type: PropType<string[]>;
        required: boolean;
        default: () => never[];
        description: string;
    };
    readonly: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    required: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    errors: {
        type: PropType<ErrorObject[]>;
        required: boolean;
        default: () => never[];
        description: string;
    };
    format: {
        type: StringConstructor;
        default: string;
        description: string;
    };
    multi: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    height: {
        type: NumberConstructor;
        default: number;
        description: string;
    };
    label: {
        type: StringConstructor;
        required: boolean;
        default: string;
        description: string;
    };
    placeholder: {
        type: StringConstructor;
        default: string;
        description: string;
    };
    inline: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    status: {
        type: StringConstructor;
        default: string;
        options: string[];
        description: string;
    };
    mode: {
        type: StringConstructor;
        default: string;
        options: string[];
        validator: (val: string) => boolean;
        description: string;
    };
    fieldset: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    size: {
        type: StringConstructor;
        options: string[];
        validator: (val: string) => boolean;
        default: string;
        description: string;
    };
    time: {
        type: BooleanConstructor;
        default: boolean;
        description: string;
    };
    presets: {
        type: (BooleanConstructor | (() => PresetRanges[]))[];
        default: boolean;
    };
    range: {
        type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
        default: boolean;
    };
    minRange: {
        type: NumberConstructor;
        default: null;
        description: string;
    };
    maxRange: {
        type: NumberConstructor;
        default: null;
        description: string;
    };
    fixedStart: {
        type: BooleanConstructor;
        default: boolean;
    };
    fixedEnd: {
        type: BooleanConstructor;
        default: boolean;
    };
    minDate: {
        type: StringConstructor;
        default: null;
    };
    maxDate: {
        type: StringConstructor;
        default: null;
    };
};
export type KDatepickerProps = Readonly<ExtractPropTypes<typeof Props>>;
export default Props;
