import { DateUnit } from "./dateunit";
import { Row } from "./elements";
export interface CalendarBase {
    weekDayNames: string[];
    monthNames: string[];
    weekFirstDay: number;
    getMonthLength(date: DateUnit): number;
    weekHeaders(): Row;
    dayNumberOfMonthFirst(date: DateUnit): number;
    dateToDateUnit(date: Date): DateUnit;
    dateToString(date: Date, format: string): string;
    dateUnitToDate(date: DateUnit): Date;
    getNameOfMonth(num: number): string;
}
export declare class Calendar<T extends CalendarBase> {
    calendar: T;
    constructor(TCreator: {
        new (): T;
    });
    nameOfMonth(num: number): string;
    dateToString(date: Date, format: string): string;
    monthLength(date: DateUnit): number;
    weekHeaders(): Row;
    dayNumberofMonthFirst(date: DateUnit): number;
}
