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';
import * as i0 from "@angular/core";
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;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlSchedule, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlSchedule, "tl-schedule", never, { "defaultView": "defaultView"; "views": "views"; "statusConfig": "statusConfig"; "typesConfig": "typesConfig"; "currentDate": "currentDate"; "height": "height"; "slotSettings": "slotSettings"; "workScale": "workScale"; "showNowIndicator": "showNowIndicator"; "texts": "texts"; "isLoading": "isLoading"; "eventButtonTemplate": "eventButtonTemplate"; "holidays": "holidays"; "allowScheduleInHolidays": "allowScheduleInHolidays"; "events": "events"; }, { "changeView": "changeView"; "changeDate": "changeDate"; "rowDbClick": "rowDbClick"; "rowClick": "rowClick"; "eventDbClick": "eventDbClick"; "eventClick": "eventClick"; "eventMouseover": "eventMouseover"; "eventMouseout": "eventMouseout"; "eventContextmenu": "eventContextmenu"; "newEventClick": "newEventClick"; "releaseSchedule": "releaseSchedule"; }, never, never, false, never>;
}
//# sourceMappingURL=schedule.d.ts.map