import { IMove } from '../specifics';
import { Category, Cycle, HolidayType } from '../types';
export interface IBaseHoliday<T> {
    readonly key: T;
    readonly cycle: Cycle;
    readonly category: Category;
    readonly validFrom: number;
    readonly validTo: number;
    readonly stringKey: string;
    readonly translationKey: string;
    readonly holidayType: HolidayType;
    readonly moves: Array<IMove>;
}
export declare abstract class BaseHoliday<T> implements IBaseHoliday<T> {
    static undefinedValidFrom: number;
    static undefinedValidTo: number;
    readonly holidayType: HolidayType;
    readonly key: T;
    readonly validFrom: number;
    readonly validTo: number;
    readonly cycle: Cycle;
    readonly category: Category;
    readonly moves: Array<IMove>;
    abstract get stringKey(): string;
    abstract get translationKey(): string;
    constructor(holidayType: HolidayType, key: T, category: Category, cycle: Cycle, validFrom: number, validTo: number);
}
//# sourceMappingURL=base-holiday.d.ts.map