import { ElementRef, InputSignal, InputSignalWithTransform, ModelSignal, OnInit, OutputEmitterRef, Signal, WritableSignal } from '@angular/core';
import { Dayjs } from "dayjs";
import { SideEnum } from "../../enums/side.enum";
import * as i0 from "@angular/core";
export declare class NgxDaterangepickerBootstrapComponent implements OnInit {
    private _ref;
    private _localeService;
    $event: any;
    chosenLabel?: string;
    calendarVariables: {
        left: any;
        right: any;
    };
    timepickerVariables: {
        left: any;
        right: any;
    };
    applyBtn: {
        disabled: boolean;
    };
    chosenRange?: string | null;
    rangesArray: Array<any>;
    inline: boolean;
    showCalInRanges: Boolean;
    private tooltiptext;
    private leftCalendar;
    private rightCalendar;
    private nowHoveredDate;
    private pickingDate;
    private _old;
    _minDate?: Dayjs | null;
    _maxDate?: Dayjs | null;
    private _locale;
    private _ranges;
    readonly startDate: ModelSignal<Dayjs | null | undefined>;
    readonly endDate: ModelSignal<Dayjs | null | undefined>;
    readonly dateLimit: InputSignal<number | null>;
    readonly autoApply: InputSignal<Boolean>;
    readonly singleDatePicker: InputSignal<Boolean>;
    readonly showDropdowns: InputSignal<Boolean>;
    readonly showWeekNumbers: InputSignal<Boolean>;
    readonly showISOWeekNumbers: InputSignal<Boolean>;
    readonly linkedCalendars: InputSignal<Boolean>;
    readonly autoUpdateInput: InputSignal<Boolean>;
    readonly alwaysShowCalendars: InputSignal<Boolean>;
    readonly maxSpan: InputSignal<Boolean>;
    readonly lockStartDate: InputSignal<Boolean>;
    readonly timePicker: InputSignal<Boolean>;
    readonly timePicker24Hour: InputSignal<Boolean>;
    readonly timePickerIncrement: InputSignal<number>;
    readonly timePickerSeconds: InputSignal<Boolean>;
    readonly showClearButton: InputSignal<Boolean>;
    readonly firstMonthDayClass: InputSignal<string | null | undefined>;
    readonly lastMonthDayClass: InputSignal<string | null | undefined>;
    readonly emptyWeekRowClass: InputSignal<string | null | undefined>;
    readonly emptyWeekColumnClass: InputSignal<string | null | undefined>;
    readonly firstDayOfNextMonthClass: InputSignal<string | null | undefined>;
    readonly lastDayOfPreviousMonthClass: InputSignal<string | null | undefined>;
    readonly showCustomRangeLabel: InputSignal<boolean | undefined>;
    readonly showCancel: InputSignal<boolean>;
    readonly keepCalendarOpeningWithRange: InputSignal<boolean>;
    readonly showRangeLabelOnInput: InputSignal<boolean>;
    readonly customRangeDirection: InputSignal<boolean>;
    readonly drops: InputSignal<string | undefined>;
    readonly opens: InputSignal<string | undefined>;
    readonly closeOnAutoApply: InputSignal<boolean>;
    readonly minDate: InputSignalWithTransform<Dayjs | null | undefined, Dayjs | string>;
    readonly maxDate: InputSignalWithTransform<Dayjs | null | undefined, Dayjs | string>;
    readonly locale: InputSignalWithTransform<any, any>;
    readonly ranges: InputSignalWithTransform<any, any>;
    readonly isInvalidDate: InputSignal<Function | null | undefined>;
    readonly isCustomDate: InputSignal<Function | null | undefined>;
    readonly isTooltipDate: InputSignal<Function | null | undefined>;
    readonly isShown: WritableSignal<Boolean>;
    readonly pickerContainer: Signal<ElementRef | undefined>;
    readonly chosenDate: OutputEmitterRef<Object>;
    readonly rangeClicked: OutputEmitterRef<Object>;
    readonly datesUpdated: OutputEmitterRef<Object>;
    readonly startDateChanged: OutputEmitterRef<Object>;
    readonly endDateChanged: OutputEmitterRef<Object>;
    readonly cancelClicked: OutputEmitterRef<void>;
    readonly clearClicked: OutputEmitterRef<void>;
    constructor();
    ngOnInit(): void;
    renderRanges(): void;
    renderTimePicker(side: SideEnum): void;
    renderCalendar(side: SideEnum): void;
    setStartDate(startDate: any): void;
    setEndDate(endDate: any): void;
    updateView(): void;
    updateMonthsInView(): void;
    /**
     *  This is responsible for updating the calendars
     */
    updateCalendars(): void;
    updateElement(): void;
    remove(): void;
    /**
     * this should calculate the label
     */
    calculateChosenLabel(): void;
    clickApply(e?: any): void;
    clickCancel(e: any): void;
    /**
     * called when month is changed
     * @param object get month value in $event.target.value / side left or right
     */
    monthChanged(object: {
        $event: any;
        side: SideEnum;
    }): void;
    /**
     * called when year is changed
     * @param object get year value in $event.target.value / side left or right
     */
    yearChanged(object: {
        $event: any;
        side: SideEnum;
    }): void;
    /**
     * called when time is changed
     * @param object time $event / side left or right
     */
    timeChanged(object: {
        $event: any;
        side: SideEnum;
    }): void;
    /**
     *  call when month or year changed
     * @param month month number 0 -11
     * @param year year eg: 1995
     * @param side left or right
     */
    monthOrYearChanged(month: number, year: number, side: SideEnum): void;
    /**
     * Click on previous month
     * @param object previous $event / side left or right calendar
     */
    clickPrev(object: {
        $event: MouseEvent;
        side: SideEnum;
    }): void;
    /**
     * Click on next month
     * @param object next $event / side left or right calendar
     */
    clickNext(object: {
        $event: MouseEvent;
        side: SideEnum;
    }): void;
    /**
     * When hovering a date
     * @param object get value by $event.target.value / side left or right / row or col position of the current date clicked
     */
    hoverDate(object: {
        $event: any;
        side: SideEnum;
        row: number;
        col: number;
    }): void;
    /**
     * When selecting a date
     * @param object get value by $event.target.value / side left or right / row or col position of the current date clicked
     */
    clickDate(object: {
        $event: any;
        side: SideEnum;
        row: number;
        col: number;
    }): void;
    /**
     *  Click on the custom range
     * @param object $event / label
     */
    clickRange(object: {
        $event: MouseEvent;
        label: string;
    }): void;
    show(e?: any): void;
    hide(e?: any): void;
    clearIncompleteDateSelection(): void;
    /**
     * handle click on all element in the component, useful for outside of click
     * @param e event
     */
    handleInternalClick(e: any): void;
    /**
     * update the locale options
     * @param locale
     */
    updateLocale(locale: any): void;
    /**
     *  clear the daterange picker
     */
    clickClear($event: any): void;
    /**
     * Find out if the selected range should be disabled if it doesn't
     * fit into minDate and maxDate limitations.
     */
    disableRange(range: any): any;
    /**
     *
     * @param date the date to add time
     * @param side left or right
     */
    private _getDateWithTime;
    /**
     *  build the locale config
     */
    private _buildLocale;
    private _buildCells;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxDaterangepickerBootstrapComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxDaterangepickerBootstrapComponent, "ngx-daterangepicker-bootstrap", never, { "startDate": { "alias": "startDate"; "required": false; "isSignal": true; }; "endDate": { "alias": "endDate"; "required": false; "isSignal": true; }; "dateLimit": { "alias": "dateLimit"; "required": false; "isSignal": true; }; "autoApply": { "alias": "autoApply"; "required": false; "isSignal": true; }; "singleDatePicker": { "alias": "singleDatePicker"; "required": false; "isSignal": true; }; "showDropdowns": { "alias": "showDropdowns"; "required": false; "isSignal": true; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; "isSignal": true; }; "showISOWeekNumbers": { "alias": "showISOWeekNumbers"; "required": false; "isSignal": true; }; "linkedCalendars": { "alias": "linkedCalendars"; "required": false; "isSignal": true; }; "autoUpdateInput": { "alias": "autoUpdateInput"; "required": false; "isSignal": true; }; "alwaysShowCalendars": { "alias": "alwaysShowCalendars"; "required": false; "isSignal": true; }; "maxSpan": { "alias": "maxSpan"; "required": false; "isSignal": true; }; "lockStartDate": { "alias": "lockStartDate"; "required": false; "isSignal": true; }; "timePicker": { "alias": "timePicker"; "required": false; "isSignal": true; }; "timePicker24Hour": { "alias": "timePicker24Hour"; "required": false; "isSignal": true; }; "timePickerIncrement": { "alias": "timePickerIncrement"; "required": false; "isSignal": true; }; "timePickerSeconds": { "alias": "timePickerSeconds"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "firstMonthDayClass": { "alias": "firstMonthDayClass"; "required": false; "isSignal": true; }; "lastMonthDayClass": { "alias": "lastMonthDayClass"; "required": false; "isSignal": true; }; "emptyWeekRowClass": { "alias": "emptyWeekRowClass"; "required": false; "isSignal": true; }; "emptyWeekColumnClass": { "alias": "emptyWeekColumnClass"; "required": false; "isSignal": true; }; "firstDayOfNextMonthClass": { "alias": "firstDayOfNextMonthClass"; "required": false; "isSignal": true; }; "lastDayOfPreviousMonthClass": { "alias": "lastDayOfPreviousMonthClass"; "required": false; "isSignal": true; }; "showCustomRangeLabel": { "alias": "showCustomRangeLabel"; "required": false; "isSignal": true; }; "showCancel": { "alias": "showCancel"; "required": false; "isSignal": true; }; "keepCalendarOpeningWithRange": { "alias": "keepCalendarOpeningWithRange"; "required": false; "isSignal": true; }; "showRangeLabelOnInput": { "alias": "showRangeLabelOnInput"; "required": false; "isSignal": true; }; "customRangeDirection": { "alias": "customRangeDirection"; "required": false; "isSignal": true; }; "drops": { "alias": "drops"; "required": false; "isSignal": true; }; "opens": { "alias": "opens"; "required": false; "isSignal": true; }; "closeOnAutoApply": { "alias": "closeOnAutoApply"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "ranges": { "alias": "ranges"; "required": false; "isSignal": true; }; "isInvalidDate": { "alias": "isInvalidDate"; "required": false; "isSignal": true; }; "isCustomDate": { "alias": "isCustomDate"; "required": false; "isSignal": true; }; "isTooltipDate": { "alias": "isTooltipDate"; "required": false; "isSignal": true; }; }, { "startDate": "startDateChange"; "endDate": "endDateChange"; "chosenDate": "chosenDate"; "rangeClicked": "rangeClicked"; "datesUpdated": "datesUpdated"; "startDateChanged": "startDateChanged"; "endDateChanged": "endDateChanged"; "cancelClicked": "cancelClicked"; "clearClicked": "clearClicked"; }, never, never, true, never>;
}
