import { Dateable } from '@vexip-ui/utils';
import { CalendarPanelSlots } from './symbol';
declare function isSelected(date: Date): boolean;
declare function isDisabled(date: Date): boolean;
declare function isHovered(date: Date): boolean;
declare function isPrevMonth(date: Date): boolean;
declare function isNextMonth(date: Date): boolean;
declare function isToday(date: Date): boolean;
declare function isInRange(date: Date): boolean;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<CalendarPanelSlots> & CalendarPanelSlots;
    refs: {
        body: HTMLDivElement;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    inherit: import('vue').PropType<boolean>;
    locale: import('vue').PropType<Partial<{
        year: string;
        month: string;
        month1: string;
        month2: string;
        month3: string;
        month4: string;
        month5: string;
        month6: string;
        month7: string;
        month8: string;
        month9: string;
        month10: string;
        month11: string;
        month12: string;
        week1: string;
        week2: string;
        week3: string;
        week4: string;
        week5: string;
        week6: string;
        week7: string;
        ariaLabel: {
            year: string;
            month: string;
            month1: string;
            month2: string;
            month3: string;
            month4: string;
            month5: string;
            month6: string;
            month7: string;
            month8: string;
            month9: string;
            month10: string;
            month11: string;
            month12: string;
            week1: string;
            week2: string;
            week3: string;
            week4: string;
            week5: string;
            week6: string;
            week7: string;
        };
    }>>;
    value: import('vue').PropType<string | number | Date | Dateable[]>;
    year: import('vue').PropType<number>;
    month: import('vue').PropType<number>;
    weekDays: import('vue').PropType<string[]>;
    weekStart: import('vue').PropType<number>;
    today: import('vue').PropType<string | number | Date>;
    disabledDate: import('vue').PropType<(data: Date) => boolean>;
    valueType: import('vue').PropType<"start" | "end">;
    min: import('vue').PropType<string | number | Date>;
    max: import('vue').PropType<string | number | Date>;
    range: import('vue').PropType<boolean>;
    slots: import('vue').PropType<CalendarPanelSlots>;
    onSelect: import('vue').PropType<((date: Date) => void) | ((date: Date) => void)[]>;
    onHover: import('vue').PropType<((date: Date | null) => void) | ((date: Date | null) => void)[]>;
}>, {
    startValue: import('vue').Ref<Date | null, Date | null>;
    endValue: import('vue').Ref<Date | null, Date | null>;
    body: import('vue').Ref<HTMLElement | null | undefined, HTMLElement | null | undefined>;
    isSelected: typeof isSelected;
    isHovered: typeof isHovered;
    isPrevMonth: typeof isPrevMonth;
    isNextMonth: typeof isNextMonth;
    isDisabled: typeof isDisabled;
    isToday: typeof isToday;
    isInRange: typeof isInRange;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:value": (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    inherit: import('vue').PropType<boolean>;
    locale: import('vue').PropType<Partial<{
        year: string;
        month: string;
        month1: string;
        month2: string;
        month3: string;
        month4: string;
        month5: string;
        month6: string;
        month7: string;
        month8: string;
        month9: string;
        month10: string;
        month11: string;
        month12: string;
        week1: string;
        week2: string;
        week3: string;
        week4: string;
        week5: string;
        week6: string;
        week7: string;
        ariaLabel: {
            year: string;
            month: string;
            month1: string;
            month2: string;
            month3: string;
            month4: string;
            month5: string;
            month6: string;
            month7: string;
            month8: string;
            month9: string;
            month10: string;
            month11: string;
            month12: string;
            week1: string;
            week2: string;
            week3: string;
            week4: string;
            week5: string;
            week6: string;
            week7: string;
        };
    }>>;
    value: import('vue').PropType<string | number | Date | Dateable[]>;
    year: import('vue').PropType<number>;
    month: import('vue').PropType<number>;
    weekDays: import('vue').PropType<string[]>;
    weekStart: import('vue').PropType<number>;
    today: import('vue').PropType<string | number | Date>;
    disabledDate: import('vue').PropType<(data: Date) => boolean>;
    valueType: import('vue').PropType<"start" | "end">;
    min: import('vue').PropType<string | number | Date>;
    max: import('vue').PropType<string | number | Date>;
    range: import('vue').PropType<boolean>;
    slots: import('vue').PropType<CalendarPanelSlots>;
    onSelect: import('vue').PropType<((date: Date) => void) | ((date: Date) => void)[]>;
    onHover: import('vue').PropType<((date: Date | null) => void) | ((date: Date | null) => void)[]>;
}>> & Readonly<{
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
    body: HTMLDivElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
