import { AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { IAlarm, IResultList } from '@c8y/client';
import { ContextRouteService, DynamicComponentAlertAggregator, ListItemComponent, LoadMoreMode } from '@c8y/ngx-components';
import { BehaviorSubject, Observable } from 'rxjs';
import { AlarmsViewService } from './alarms-view.service';
import { AlarmNavigationOptions } from './alarms.model';
import { AlarmDetails } from '@c8y/ngx-components/alarm-event-selector';
import * as i0 from "@angular/core";
export declare class AlarmsListComponent implements OnChanges, AfterViewInit, OnDestroy {
    private activatedRoute;
    private alarmsViewService;
    private contextRouteService;
    private router;
    readonly alarmBadgeTooltip: "Number of occurrences`number of occurrences of alarm`. First occurrence {{ alarmFirstOccurrenceTime }} (device time).";
    readonly alarmLastOccurrenceLabel: "Last occurrence of this alarm (device time).";
    /**
     * Input property for receiving a list of alarms.
     */
    alarms: IResultList<IAlarm & {
        link?: string;
    }>;
    hasPermissions: boolean;
    /**
     * Input property for the currently applied type filters.
     */
    typeFilters: AlarmDetails[];
    /**
     * Input property for receiving load more mode.
     */
    loadMoreMode: LoadMoreMode;
    /**
     * Defines options, how the alarm list should be navigated if a user
     * clicks on an alarm.
     */
    navigationOptions: AlarmNavigationOptions;
    /**
     * Controls the visibility of the loading bar
     * When set to `false`, the alarm list is displayed. When set to `true`, the opacity of alarms list is changed and a loading bar is shown.
     */
    isInitialLoading: boolean;
    /**
     * Controls the visibility and functionality of some components
     * When set to `true`, means the list is displayed in a split view layout:
     * the list on the first column and the selected record detail on the second column (the cockpit
     * alarms view for example)
     * When set to false, the list is displayed as a standalone component, opening the detail will
     * redirect to the alarms
     */
    splitView: boolean;
    /**
     * Emits an instance of a selected alarm when one is chosen from the list.
     */
    onSelectedAlarm: EventEmitter<IAlarm>;
    /**
     * Emits a boolean value indicating the scrolling state: true when the user starts scrolling, and false when the user reaches the top of the list.
     */
    onScrollingStateChange: EventEmitter<boolean>;
    /**
     * Current alarm or last alarm marked as active by the routerLinkActive directive.
     */
    activeAlarm$: BehaviorSubject<IAlarm>;
    activeChildParam$: Observable<string>;
    innerScrollWrapper: ElementRef;
    isScrolling: boolean;
    /**
     * Determines whether the c8y-loading component should be displayed.
     * The loading component is shown when no alarms are displayed in the view or when the request is initial,
     * as we don't want to see empty space on alarm list during loading.
     */
    isEmptyListLoading: boolean;
    alertAggregator: DynamicComponentAlertAggregator;
    mapAlarmLink: import("rxjs").UnaryFunction<Observable<IAlarm[]>, Observable<IAlarm[]>>;
    private destroy$;
    private HIDE_INTERVAL_COUNTDOWN_SCROLL;
    constructor(activatedRoute: ActivatedRoute, alarmsViewService: AlarmsViewService, contextRouteService: ContextRouteService, router: Router);
    /**
     * Handles the change of the active route.
     *
     * @param isActive - A boolean indicating whether the route is active or not.
     * @param scrollAnchor - The ListItemComponent used as a scroll anchor.
     * @param alarm - The IAlarm object representing the active alarm.
     */
    activeRouteChanged(isActive: boolean, scrollAnchor: ListItemComponent, alarm: IAlarm): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onAlarmOpen(alarm: IAlarm): void;
    getRouterLink(alarm: IAlarm): string;
    private shouldCountdownIntervalBeHidden;
    private verifyIfFiltersMatchingAlarm;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlarmsListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AlarmsListComponent, "c8y-alarms-list", never, { "alarms": { "alias": "alarms"; "required": false; }; "hasPermissions": { "alias": "hasPermissions"; "required": false; }; "typeFilters": { "alias": "typeFilters"; "required": false; }; "loadMoreMode": { "alias": "loadMoreMode"; "required": false; }; "navigationOptions": { "alias": "navigationOptions"; "required": false; }; "isInitialLoading": { "alias": "isInitialLoading"; "required": false; }; "splitView": { "alias": "splitView"; "required": false; }; }, { "onSelectedAlarm": "onSelectedAlarm"; "onScrollingStateChange": "onScrollingStateChange"; }, never, ["*"], false, never>;
}
//# sourceMappingURL=alarms-list.component.d.ts.map