import { VNode } from 'vue';
type DateSlotScope = {
    date: Date;
    today: boolean;
    disabled: boolean;
    selected: boolean;
    inMonth: boolean;
    select: () => void;
};
type __VLS_Props = {
    modelValue: Date | null | undefined;
    viewingDate: Date;
    min?: Date | null | undefined;
    minReason?: string;
    max?: Date | null | undefined;
    maxReason?: string;
};
type __VLS_Slots = {
    date: (props: DateSlotScope) => VNode;
};
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    "update:modelValue": (value: Date | null | undefined) => any;
    mode: (mode: "month" | "year") => any;
    "update:viewingDate": (value: Date | null | undefined) => any;
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
    "onUpdate:modelValue"?: ((value: Date | null | undefined) => any) | undefined;
    onMode?: ((mode: "month" | "year") => any) | undefined;
    "onUpdate:viewingDate"?: ((value: Date | null | undefined) => any) | undefined;
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
