import { EventEmitter, ElementRef } from '@angular/core';
import { Calendar } from 'primeng-lts/calendar';
import { SelectItem } from 'primeng-lts/api';
import * as i0 from "@angular/core";
export interface DateRangeSelection {
    timeFrame?: number | null;
    timeRange?: {
        start: number;
        end?: number;
    };
}
export interface SelectFixedRange extends SelectItem {
    selected?: boolean;
}
export declare class AlDateRangeSelectorComponent {
    private eref;
    calendar?: Calendar;
    menu: any;
    /**
     * Inputs, properties to handle visual behaviour
     */
    selectorTitle: string;
    fixedRanges: SelectFixedRange[];
    customRangeTitle: string;
    hideSelector: boolean;
    calendarDateFormat: string;
    calendarMaxDaysHistory: number | null;
    calendarMinYearHistory: string;
    calendarMaxDate: Date;
    calendarMinDate?: Date | null;
    disableCalendar: boolean;
    showCalendar: boolean;
    showTimePicker: boolean;
    returnTimeFrame: boolean;
    timeZoneOffset?: string;
    placeholder?: string;
    initialDateRangeSelection?: Date[] | undefined;
    sliceDropdownItems: number;
    verticalLayout: boolean;
    /**
     * Outputs
     */
    onDateSelected: EventEmitter<DateRangeSelection>;
    onClosedCalendar: EventEmitter<DateRangeSelection>;
    onSelectFixedRange: EventEmitter<DateRangeSelection>;
    onShowCalendar: EventEmitter<DateRangeSelection>;
    /**
     * Public variables
     */
    selectedFixedDate?: string;
    selectedDateRange?: Date[];
    startTime: Date;
    endTime: Date;
    isCalendarYearRange: boolean;
    calendarYearRange: string;
    hideCalendar: boolean;
    isDropdownActive: boolean;
    isDropdownSelected: boolean;
    constructor(eref: ElementRef);
    onClick(event: any): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /**
     * Sets the default fixed date range or the one passed as param
     * @param fixedRangeToSelect SelectFixedRange, the fixedRange we want to set
     * @param emit boolean, if we want to emit the events or only setup the calendar
     */
    setDefaultDateRange(fixedRangeToSelect?: SelectFixedRange, emit?: boolean): void;
    /**
     * Handle date selection on fixed selector or calendar
     * @param date string
     * @param event string, possible event where the function may be called from (fixed or show)
     * @param emit boolean, if we want to emit the events or only setup the calendar
     */
    updateCalendarFromFixedRange(fixedRange?: string | undefined, event?: 'fixed' | 'show', emit?: boolean): void;
    /**
     * Handle the event on show calendar
     */
    updateCalendarOnShow(): void;
    handleDateRangeSelection(event?: string, isFromTimeSelector?: boolean): void;
    /**
     * Handle date selection from calendar
     * @param date string, date string representation
     */
    selectDate(isFromTimeSelector?: boolean, isClosing?: boolean): void;
    getMillisecondsFromDate(date: Date, timeOnlyDate?: Date): number;
    getMillisecondsFromFixedRange(fixedRange: string): number;
    /**
     * Allows the user to set the calendar date-range based on a timeframe
     * (milliseconds in the past) or using start and end date in milliseconds
     *
     * @param millisecondsInthePast number, this can represent the milliseconds in the past or the start date in milliseconds
     * @param endMilliseconds number, if set this means we are setting start and end date in milliseconds
     */
    setCalendarDateRange(millisecondsInthePast: number, endMilliseconds?: number): void;
    /**
     * Public function allowing parent to setup the whole date-range-selector
     * visualization from a defined dateRange programmatically
     * @param dateRange DateRangeSelection, date range structure to be used as base for the setup
     * @param emit boolean, if we want to emit the events or only setup the calendar
     */
    setupFromDateRange(dateRange: DateRangeSelection, emit?: boolean): void;
    openCalendar(event: any): void;
    private setupCalendarProperties;
    private setInitialDateSelection;
    static ɵfac: i0.ɵɵFactoryDef<AlDateRangeSelectorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<AlDateRangeSelectorComponent, "al-date-range-selector", never, { "selectorTitle": "selectorTitle"; "fixedRanges": "fixedRanges"; "customRangeTitle": "customRangeTitle"; "hideSelector": "hideSelector"; "calendarDateFormat": "calendarDateFormat"; "calendarMaxDaysHistory": "calendarMaxDaysHistory"; "calendarMinYearHistory": "calendarMinYearHistory"; "calendarMaxDate": "calendarMaxDate"; "calendarMinDate": "calendarMinDate"; "disableCalendar": "disableCalendar"; "showCalendar": "showCalendar"; "showTimePicker": "showTimePicker"; "returnTimeFrame": "returnTimeFrame"; "timeZoneOffset": "timeZoneOffset"; "placeholder": "placeholder"; "initialDateRangeSelection": "initialDateRangeSelection"; "sliceDropdownItems": "sliceDropdownItems"; "verticalLayout": "verticalLayout"; }, { "onDateSelected": "onDateSelected"; "onClosedCalendar": "onClosedCalendar"; "onSelectFixedRange": "onSelectFixedRange"; "onShowCalendar": "onShowCalendar"; }, never, never>;
}
