import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
interface SchedulingObject {
    start: Date;
    end: Date;
    title?: string;
    subTitle?: string;
    height?: number;
    top?: number;
    id: number | string;
    selected: boolean;
    showTopResizer?: boolean;
    showBottomResizer?: boolean;
    [key: string]: any;
}
export declare class HourSchedulingExpandableComponent implements OnInit {
    private cdRef;
    private eRef;
    hourLabels: string[];
    scheduledObjects: SchedulingObject[];
    private resizing;
    private resizeDirection;
    private initialY;
    private initialHeight;
    private initialTop;
    private currentResizingObject;
    private currentDraggingObject;
    private MIN_HEIGHT;
    private _schedule;
    set schedule(value: Object);
    get schedule(): Object;
    startTimeProp: string;
    endTimeProp: string;
    objectsProp: string;
    childProp: string;
    customTemplate: TemplateRef<any>;
    idProp: string;
    timeChangeEvent: EventEmitter<Object>;
    newObjectPlanEvent: EventEmitter<{
        currentHour: string;
        data: string;
    }>;
    moveBetweenCalendarsEvent: EventEmitter<{
        hour: string;
        data: SchedulingObject;
    }>;
    showClass: boolean;
    onResize(event: {
        target: {
            innerWidth: any;
        };
    }): void;
    clickOut(event: {
        target: any;
    }): void;
    constructor(cdRef: ChangeDetectorRef, eRef: ElementRef);
    ngOnInit(): void;
    private _findNextObject;
    private _findPreviousObject;
    renderObjects(): void;
    onSelectBlock(obj: SchedulingObject): void;
    onDragStartCustom(obj: SchedulingObject): void;
    handleDrop(dragEvent: DragEvent, hour: string): void;
    allowDrop(event: DragEvent, hour: string): boolean;
    handleDragLeave(event: DragEvent): void;
    onResizeStart(event: MouseEvent, obj: SchedulingObject, direction: 'top' | 'bottom'): void;
    onResizing(event: MouseEvent): void;
    onResizeEnd(event: MouseEvent): void;
    timeDifference(date1: Date, date2: Date): number;
    generateTimeBlocks(): void;
    dateToUnixEpoch(date: Date): number;
    addMinutes(date: Date, minutes: number): Date;
    tryParseJSONObject(jsonString: string): any;
    addHalfHour(hour: string): string;
    convertTZ(date: any, tzString: any): Date;
    convertDateToEuropean(date: Date): Date;
    handleDeselectAll(): void;
}
export {};
