import { ICalendarItem, INormalizedCalendarItem, DateTimeFormatOption } from './ICalendarItem';
import { IHeaderProps } from './IHeaderProps';
type DateClasses = {
    [key: string]: string | string[];
};
type __VLS_Props = {
    showDate?: Date;
    displayPeriodUom?: string;
    displayPeriodCount?: number;
    displayWeekNumbers?: boolean;
    locale?: string;
    monthNameFormat?: DateTimeFormatOption;
    weekdayNameFormat?: DateTimeFormatOption;
    showTimes?: boolean;
    timeFormatOptions?: object;
    disablePast?: boolean;
    disableFuture?: boolean;
    enableDateSelection?: boolean;
    selectionStart?: Date;
    selectionEnd?: Date;
    enableDragDrop?: boolean;
    startingDayOfWeek?: number;
    items?: ICalendarItem[];
    dateClasses?: DateClasses;
    itemTop?: string;
    itemContentHeight?: string;
    itemBorderHeight?: string;
    periodChangedCallback?: Function;
    currentPeriodLabel?: string;
    currentPeriodLabelIcons?: string;
    enableTooltip?: boolean;
    doEmitItemMouseEvents?: boolean;
    enableHtmlTitles?: boolean;
    monthNameOn1st?: boolean;
};
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        header?(_: {
            headerProps: IHeaderProps;
        }): any;
        'day-header'?(_: {
            index: string;
            label: string;
        }): any;
        'week-number'?(_: {
            date: Date;
            numberInYear: number;
            numberInPeriod: number;
        }): any;
        'day-content'?(_: {
            day: Date;
        }): any;
        item?(_: {
            value: INormalizedCalendarItem;
            weekStartDate: Date;
            top: string;
        }): any;
        item?(_: {
            value: INormalizedCalendarItem;
            weekStartDate: Date;
            top: string;
        }): any;
    };
    refs: {};
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    [x: string]: any;
} & {
    [x: string]: any;
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
    [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
}>, {
    showDate: Date;
    displayPeriodUom: string;
    displayPeriodCount: number;
    displayWeekNumbers: boolean;
    locale: string;
    monthNameFormat: "long" | "short" | "narrow";
    weekdayNameFormat: "long" | "short" | "narrow";
    showTimes: boolean;
    timeFormatOptions: object;
    disablePast: boolean;
    disableFuture: boolean;
    enableDateSelection: boolean;
    selectionStart: Date;
    selectionEnd: Date;
    enableDragDrop: boolean;
    startingDayOfWeek: number;
    items: ICalendarItem[];
    dateClasses: DateClasses;
    itemTop: string;
    itemContentHeight: string;
    itemBorderHeight: string;
    periodChangedCallback: Function;
    currentPeriodLabel: string;
    currentPeriodLabelIcons: string;
    enableTooltip: boolean;
    doEmitItemMouseEvents: boolean;
    enableHtmlTitles: boolean;
    monthNameOn1st: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
