import { EventEmitter, OnDestroy } from '@angular/core';
import { ControlValueAccessor, FormBuilder } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { AlarmListFormFilters } from './alarms.model';
import { BsDropdownDirective } from 'ngx-bootstrap/dropdown';
import { AlarmsViewService } from './alarms-view.service';
import { AlarmFilterInterval } from '@c8y/ngx-components/interval-picker';
import * as i0 from "@angular/core";
export declare class AlarmsDateFilterComponent implements OnDestroy, ControlValueAccessor {
    private formBuilder;
    private router;
    private activatedRoute;
    private alarmsViewService;
    readonly INTERVALS: AlarmFilterInterval[];
    readonly INTERVAL_TITLES: Record<"minutes" | "hours" | "days" | "weeks" | "months" | "custom" | "none", string>;
    readonly DATE_FORMAT = "short";
    DEFAULT_INTERVAL: AlarmFilterInterval['id'];
    updateQueryParams: boolean;
    /**
     * Date range to be displayed in the date picker.
     */
    date: [string, string];
    noFilterLabel: "No date filter";
    private showCleared;
    private severityOptions;
    private typeFilters;
    private destroy$;
    dateFilterChange: EventEmitter<AlarmListFormFilters>;
    dropdown: BsDropdownDirective;
    form: ReturnType<AlarmsDateFilterComponent['createForm']>;
    onChange: (value: any) => void;
    constructor(formBuilder: FormBuilder, router: Router, activatedRoute: ActivatedRoute, alarmsViewService: AlarmsViewService);
    onTouched: () => void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    applyDateFilter(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(onTouched: any): void;
    private updateDateTime;
    private getDefaultContext;
    private subscribeToIntervalChange;
    private createForm;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlarmsDateFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AlarmsDateFilterComponent, "c8y-alarms-date-filter", never, { "DEFAULT_INTERVAL": { "alias": "DEFAULT_INTERVAL"; "required": false; }; "updateQueryParams": { "alias": "updateQueryParams"; "required": false; }; "date": { "alias": "date"; "required": false; }; }, { "dateFilterChange": "dateFilterChange"; }, never, never, false, never>;
}
//# sourceMappingURL=alarms-date-filter.component.d.ts.map