import { ElementRef, EventEmitter, OnChanges, SimpleChanges, Renderer2 } from "@angular/core";
import { Observable } from "rxjs";
import { NgxDatetimeRangePickerService } from "./ngx-datetime-range-picker.service";
import { Options, Settings, State, DateSide, DateCharacteristics, DateRangeModel, Config, TimeSide, DateTimeRangeChangeOutput, DateTimeRangeModelChangeOutput } from "./interfaces";
import * as i0 from "@angular/core";
export declare class NgxDatetimeRangePickerComponent implements OnChanges {
    element: ElementRef;
    private renderer;
    private service;
    options: Options;
    settings: Settings;
    optionService: Observable<any>;
    dateRangeModel: Options | DateRangeModel;
    canBeEmpty: boolean;
    dateRangeModelChange: EventEmitter<Options | DateRangeModel>;
    dateRangeChanged: EventEmitter<Options>;
    inputFocusBlur: EventEmitter<object>;
    selectedDate: EventEmitter<Options>;
    filterInputBox: any;
    state: State;
    config: Config;
    constructor(element: ElementRef, renderer: Renderer2, service: NgxDatetimeRangePickerService);
    ngOnChanges(changes: SimpleChanges): void;
    onDateRangeInputChange(): void;
    setDisabledState(disabled: boolean): void;
    onComponentClick(): void;
    onFocusInput(event: MouseEvent | FocusEvent): void;
    onBlurInput(event: MouseEvent | FocusEvent): void;
    onCalendarClose(): void;
    isPrevAvailable(side: any): boolean;
    isNextAvailable(side: any): boolean;
    getCalendarColspan(): number;
    getCalendarRowItemColspan(): number;
    onClickPrevious(side: string): void;
    onClickNext(side: string): void;
    onCellClick(item: DateCharacteristics, itemCell: any, side: string): void;
    onCellMouseEnter(item: DateCharacteristics, itemCell: any, side: string): void;
    onCellMouseLeave(): void;
    onRangeClick(rangeLabel: string, dateRangeModel: Options): void;
    updateCalendar(): void;
    onCalendarLabelChange(label: string, side: string, type: string): void;
    onTimeLabelChange(timeItem: string, side: string, item: string): void;
    onTimeApply(): void;
    init(): void;
    initialize(): void;
    parseOptions(): void;
    selectTimeZone(): void;
    parseOptionsToDefaultDateFormat(): void;
    /**
     * @desc sets startDate, endDate
     */
    processDateRangeModel(): void;
    /**
     * @desc sets minDate, maxDate, startDate, endDate if not passed
     */
    handleDateArray(): void;
    sanitizeDates(): void;
    processRanges(): void;
    selectActiveRange(): void;
    generateCalendar(date: string | number, side: string): DateSide;
    generateTimePicker(time: string, side: string): TimeSide;
    updateInputField(): void;
    updateActiveItemInputField(): void;
    updateSide(side: string): void;
    dateRangeSelected(): void;
    doDateRangeModelChange(): void;
    getDateRangeModel(format?: string): DateTimeRangeModelChangeOutput;
    getNgxDatetimeRangeChangeOutput(format?: string): DateTimeRangeChangeOutput;
    doApply(): void;
    onTimezoneChange(tz: string): void;
    getSelectedTimeItemText(item: string, side: string): any;
    setActiveItemOnRangeClick(): void;
    updateActiveItem(): void;
    printSelect(options: {
        type: string;
        side: string;
        items: string[];
        selected: string;
        onChange: (e: Event, side: string, type: string) => void;
    }): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxDatetimeRangePickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxDatetimeRangePickerComponent, "ngx-datetime-range-picker", never, { "options": { "alias": "options"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "optionService": { "alias": "optionService"; "required": false; }; "dateRangeModel": { "alias": "dateRangeModel"; "required": false; }; "canBeEmpty": { "alias": "canBeEmpty"; "required": false; }; }, { "dateRangeModelChange": "dateRangeModelChange"; "dateRangeChanged": "dateRangeChanged"; "inputFocusBlur": "inputFocusBlur"; "selectedDate": "selectedDate"; }, never, never, false, never>;
}
