import { OnChanges, SimpleChanges, OnInit, EventEmitter, ChangeDetectorRef, TemplateRef } from '@angular/core';
import { ScheduleDataSource } from './types/datasource.type';
import { StatusType } from './types/status.type';
import { ViewType } from './types/view.type';
import { SlotSettingsType } from './types/slot-settings.type';
import { WorkScaleType } from './types/work-scale.type';
import { WorkScaleService } from './services/work-scale.service';
import { EventService } from './services/event.service';
import { HolidaysType } from './types/holidays.type';
import { HolidayService } from './services/holiday.service';
import { GenerateEventsService } from './services/generate-events.service';
export declare class TlSchedule implements OnInit, OnChanges {
    workScaleService: WorkScaleService;
    private changeDetection;
    private eventService;
    private holidayService;
    private generateEventsService;
    defaultView: ViewType;
    views: Array<ViewType>;
    statusConfig: StatusType;
    typesConfig: any;
    currentDate: Date;
    height: string;
    slotSettings: SlotSettingsType;
    workScale: WorkScaleType | WorkScaleType[];
    showNowIndicator: boolean;
    texts: {
        views: {
            day: string;
            week: string;
            month: string;
            workWeek: string;
            dayList: string;
            weekList: string;
        };
        buttons: {
            addEvent: string;
        };
        scaleNotFound: string;
    };
    isLoading: boolean;
    eventButtonTemplate: TemplateRef<any>;
    holidays: Array<HolidaysType>;
    allowScheduleInHolidays: boolean;
    set events(events: ScheduleDataSource[]);
    changeView: EventEmitter<ViewType>;
    changeDate: EventEmitter<any>;
    rowDbClick: EventEmitter<any>;
    rowClick: EventEmitter<any>;
    eventDbClick: EventEmitter<any>;
    eventClick: EventEmitter<any>;
    eventMouseover: EventEmitter<any>;
    eventMouseout: EventEmitter<any>;
    eventContextmenu: EventEmitter<any>;
    newEventClick: EventEmitter<any>;
    releaseSchedule: EventEmitter<any>;
    scheduleviews: any;
    slatNumberRowsAsArray: Array<Number>;
    existsScale: boolean;
    currentHoliday: HolidaysType;
    private _events;
    private scrollTopOfscrollView;
    get events(): ScheduleDataSource[];
    constructor(workScaleService: WorkScaleService, changeDetection: ChangeDetectorRef, eventService: EventService, holidayService: HolidayService, generateEventsService: GenerateEventsService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onChangeView(view: ViewType): void;
    onChangeDate($event: any): void;
    onClickReleaseSchedule(holiday: HolidaysType): void;
    private setScrollTopOnChange;
    private handleScrollView;
    private isSameDay;
    private handleHoliday;
    private convertSlarNumberToArray;
}
