export declare enum DayOfWeek {
    Sunday = 0,
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6
}
export declare abstract class CalendarBase {
    protected static epochTicks: number;
    protected static ticksPerMilisecond: number;
    protected static ticksPerSecond: number;
    protected static ticksPerMinute: number;
    protected static ticksPerHour: number;
    protected static ticksPerDay: number;
    protected static milisecondsPerTicks: number;
    protected static secondsPerTicks: number;
    protected static minutesPerTicks: number;
    protected static hoursPerTicks: number;
    protected static daysPerTicks: number;
    protected static datePartYear: number;
    protected static datePartDayOfYear: number;
    protected static datePartMonth: number;
    protected static datePartDay: number;
    protected static datePartEra: number;
    protected static datePartDayofWeek: number;
    protected static datePartHour: number;
    protected static datePartMinute: number;
    protected static datePartSecond: number;
    protected static datePartFullArray: number;
    protected static maxYear: number;
    protected static fullCircleOfArc: number;
    protected static meanTropicalYearInDays: number;
    protected static meanSpeedOfSun: number;
    protected static longitudeSpring: number;
    protected static twoDegreesAfterSpring: number;
    protected getTicks(dateTime: Date): number;
    protected getDays(dateTime: Date): number;
    protected abstract getTickPart(ticks: number, part: number): number;
    protected abstract getEpoch(): number;
    abstract getAlgorithm(): string;
    abstract getEras(): string[];
    abstract getEra(dateTime: Date): string;
    abstract isLeapYear(year: number, era?: string): boolean;
    abstract isLeapMonth(year: number, month: number, era?: string): boolean;
    abstract isLeapDay(year: number, month: number, day: number, era?: string): boolean;
    abstract getLeapMonth(year: number): number;
    abstract getLeapDay(year: number): number;
    abstract getMonthsInYear(year: number, era?: string): number;
    abstract getDaysInYear(year: number, era?: string): number;
    abstract getDaysInMonth(year: number, month: number, era?: string): number;
    abstract getWeeksInYear(year: number, era?: string): number;
    abstract getWeekOfYear(dateTime: Date, firstDayOfWeek: DayOfWeek, era?: string): number;
    abstract getYear(dateTime: Date, era?: string): number;
    abstract getMonth(dateTime: Date): number;
    abstract getDayOfMonth(dateTime: Date): number;
    abstract getDayOfYear(dateTime: Date): number;
    abstract getHour(dateTime: Date): number;
    abstract getMinute(dateTime: Date): number;
    abstract getSecond(dateTime: Date): number;
    abstract getDayOfWeek(dateTime: Date): DayOfWeek;
    abstract getFirstDayOfWeek(dateTime: Date): DayOfWeek;
    abstract addMiliSeconds(dateTime: Date, value: number): Date;
    abstract addSeconds(dateTime: Date, value: number): Date;
    abstract addMinutes(dateTime: Date, value: number): Date;
    abstract addHours(dateTime: Date, value: number): Date;
    abstract addDays(dateTime: Date, value: number): Date;
    abstract addWeeks(dateTime: Date, value: number): Date;
    abstract addMonths(dateTime: Date, value: number): Date;
    abstract addYears(dateTime: Date, value: number): Date;
    abstract isValidYear(year: number, era?: string): boolean;
    abstract isValidMonth(year: number, month: number, era?: string): boolean;
    abstract isValidDay(year: number, month: number, day: number, era?: string): boolean;
    abstract toTicks(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number): number;
    toDate(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number): Date;
}
