import { IRenderer, TdData, NotifyEventArgs, CellClickEventArgs } from '../base/interface';
import { Schedule } from '../base/schedule';
import { ViewBase } from './view-base';
import { NavigationDirection } from '../base/type';
/**
 * month view
 */
export declare class Month extends ViewBase implements IRenderer {
    dayNameFormat: string;
    viewClass: string;
    isInverseTableSelect: boolean;
    private monthDates;
    private monthEvent;
    constructor(parent: Schedule);
    addEventListener(): void;
    removeEventListener(): void;
    onDataReady(args: NotifyEventArgs): void;
    onCellClick(event: CellClickEventArgs): void;
    onContentScroll(e: Event): void;
    scrollLeftPanel(target: HTMLElement): void;
    getLeftPanelElement(): HTMLElement;
    onScrollUIUpdate(args: NotifyEventArgs): void;
    private scrollToSelectedDate;
    setContentHeight(content: HTMLElement, leftPanelElement: HTMLElement, height: number): void;
    generateColumnLevels(): TdData[][];
    getDateSlots(renderDates: Date[], workDays: number[]): TdData[];
    getDayNameFormat(): string;
    renderLayout(type: string): void;
    refreshHeader(): void;
    private wireCellEvents;
    renderHeader(): void;
    renderLeftIndent(tr: Element): void;
    renderContent(): void;
    private renderWeekNumberContent;
    renderAppointmentContainer(): void;
    renderDatesHeader(): Element;
    private createHeaderCell;
    getContentSlots(): TdData[][];
    updateClassList(data: TdData): void;
    updateSelectedCellClass(data: TdData): void;
    private isOtherMonth;
    renderContentArea(): Element;
    getContentRows(): Element[];
    createContentTd(data: TdData, td: Element): Element;
    private renderDateHeaderElement;
    getMonthStart(currentDate: Date): Date;
    getMonthEnd(currentDate: Date): Date;
    private isCustomRange;
    getRenderDates(workDays?: number[], selectedDate?: Date): Date[];
    getNextPreviousDate(type: NavigationDirection): Date;
    getStartDate(): Date;
    getEndDate(): Date;
    getEndDateFromStartDate(start: Date): Date;
    getDateRangeText(startDate?: Date, dateCollection?: Date[]): string;
    getLabelText(view: string): string;
    private createWeekNumberElement;
    unWireEvents(): void;
    private isCustomMonth;
    protected getModuleName(): string;
    destroy(): void;
}
