import { IonSlides } from '@ionic/angular';
import { OnInit, OnChanges, EventEmitter, SimpleChanges, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';
import { ICalendarComponent, IDisplayBooking, IBooking, IRange, IWeekView, IWeekViewRow, IWeekViewDayHeaderRow, CalendarMode, IDateFormatter, IDisplayWeekViewHeader } from './calendar';
import { CalendarService } from './calendar.service';
import { IWeekViewNormalEventSectionTemplateContext } from "./calendar";
export declare class WeekViewComponent implements ICalendarComponent, OnInit, OnChanges, AfterViewInit, OnDestroy {
    private calendarService;
    slider: IonSlides;
    class: boolean;
    weekviewHeaderTemplate: TemplateRef<IDisplayWeekViewHeader>;
    weekviewNormalEventTemplate: TemplateRef<IDisplayBooking>;
    weekviewNormalEventSectionTemplate: TemplateRef<IWeekViewNormalEventSectionTemplateContext>;
    formatViewTitle: string;
    formatWeekViewDayHeader: string;
    bookingsSource: IBooking[];
    roomNamesSource: string[];
    locale: string;
    dateFormatter: IDateFormatter;
    onRangeChanged: EventEmitter<IRange>;
    onEventSelected: EventEmitter<IBooking>;
    onTitleChanged: EventEmitter<string>;
    views: IWeekView[];
    range: IRange;
    mode: CalendarMode;
    roomLabels: string[];
    currentViewIndex: number;
    direction: number;
    dir: string;
    private startingDayWeek;
    private inited;
    private callbackOnInit;
    private currentDateChangedFromParentSubscription;
    private eventSourceChangedSubscription;
    private formatDayHeader;
    private formatTitle;
    constructor(calendarService: CalendarService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    onSlideChanged(): void;
    move(direction: number): void;
    private getRoomLabels;
    static createWeekRooms(rooms: string[]): IWeekViewRow[][];
    static getDates(startTime: Date, n: number): IWeekViewDayHeaderRow[];
    getViewData: (startTime: Date) => IWeekView;
    getRange: (currentDate: Date) => IRange;
    onDataLoaded(): void;
    daysBetween: (date1: Date, date2: Date) => number;
    refreshView(): void;
    getTitle(): string;
    select(events: IDisplayBooking[]): void;
}
