import { FishDate } from './fish-date'; export declare type FishPeriod = 'y' | 'm' | 'd'; export declare abstract class FishCalendar { abstract getDaysPerWeek(): number; abstract getMonths(): number[]; abstract getWeeksPerMonth(): number; abstract getWeekday(date: FishDate): number; abstract getNext(date: FishDate, period?: FishPeriod, number?: number): FishDate; abstract getPrev(date: FishDate, period?: FishPeriod, number?: number): FishDate; abstract getWeekNumber(week: FishDate[], firstDayOfWeek: number): number; abstract getToday(): FishDate; abstract isValid(date: FishDate): boolean; } export declare class FishCalendarGregorian extends FishCalendar { getDaysPerWeek(): number; getMonths(): number[]; getWeeksPerMonth(): number; getNext(date: FishDate, period?: FishPeriod, number?: number): FishDate; getPrev(date: FishDate, period?: FishPeriod, number?: number): FishDate; getWeekday(date: FishDate): number; getWeekNumber(week: FishDate[], firstDayOfWeek: number): number; getToday(): FishDate; isValid(date: FishDate): boolean; }