import type { PropType, SlotsType } from 'vue';
import type { ComponentInnerProps, ComponentSlots, ExtractPublicPropTypes } from '../_util/interface';
import type { UnixTime } from './types';
/**
 * Calendar 显示模式
 *
 * month - 月历
 * date - 日历
 */
export type CalendarMode = 'month' | 'date';
export interface CalendarShortcut {
    label: string;
    time: UnixTime | (() => UnixTime);
}
export declare const calendarProps: {
    /** 当前高亮标记的日期 */
    readonly modelValue: {
        readonly type: PropType<number>;
        readonly default: () => number;
    };
    /** 显示模式 */
    readonly mode: {
        readonly type: PropType<CalendarMode>;
        readonly default: "date";
        readonly validator: (value: unknown) => boolean;
    };
    /** 是否展示分割线 */
    readonly splitLine: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    /** 组件高度 */
    readonly height: {
        readonly type: PropType<string | number>;
    };
    /** 快捷选项 */
    readonly shortcuts: {
        readonly type: PropType<CalendarShortcut[]>;
        readonly default: () => CalendarShortcut[];
    };
};
export type CalendarProps = ExtractPublicPropTypes<typeof calendarProps>;
export type CalendarInnerProps = ComponentInnerProps<typeof calendarProps>;
export declare const CalendarEvent: {
    readonly UPDATE_MODEL: "update:modelValue";
    readonly UPDATE_MODE: "update:mode";
    readonly CELL_CLICK: "cellClick";
};
export type CalendarSlotsParams = {
    cellMain: {
        date: UnixTime;
        mode: CalendarMode;
    };
    cellAppendant: {
        date: UnixTime;
        mode: CalendarMode;
    };
};
export type CalendarSlots = SlotsType<CalendarSlotsParams>;
export type CalendarUnboxSlots = ComponentSlots<CalendarSlotsParams>;
