import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { CountdownIntervalComponent, IntervalBasedReload, WidgetGlobalAutoRefreshService } from '@c8y/ngx-components';
import { AlarmsViewService } from '@c8y/ngx-components/alarms';
import { TranslateService } from '@ngx-translate/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import { AlarmListWidgetConfig } from './alarm-list-widget.model';
import * as i0 from "@angular/core";
export declare class AlarmWidgetAlarmsReloadComponent extends IntervalBasedReload implements OnInit, AfterViewInit, OnChanges, OnDestroy {
    private alarmsViewService;
    private cdRef;
    private translateService;
    private widgetGlobalAutoRefreshService;
    readonly REALTIME_UPDATE_ALARMS_MESSAGE: "The list was updated, click to refresh.";
    /**
     * State of this boolean depends on an Application Options "alarmsRefreshType" setting.
     */
    isIntervalRefresh: boolean;
    /**
     * @inheritdoc
     */
    refreshInterval: number;
    /**
     * Alarm widgets config.
     */
    config: AlarmListWidgetConfig;
    /**
     * @inheritdoc
     */
    isLoading: BehaviorSubject<boolean>;
    /**
     * Indicates whether the alarm list is being scrolled or not.
     */
    isScrolling: boolean;
    /**
     * @inheritdoc
     */
    isRefreshDisabled: boolean;
    /**
     * @inheritdoc
     */
    onCountdownEnded: EventEmitter<void>;
    /**
     * Emitted to indicate that the widgets realtime button state has changed.
     */
    onRealTimeToggleChanged: EventEmitter<boolean>;
    countdownIntervalComponent: CountdownIntervalComponent;
    /**
     * @inheritdoc
     */
    protected hideCountdown: boolean;
    /**
     * Tooltip for a new realtime alarm indicator.
     */
    realtimeIconTitle: string;
    /**
     * Indicates whether the countdown has been cleared already.
     */
    isNewAlarmMessageCleared: boolean;
    /**
     * @inheritdoc
     */
    isIntervalRefreshToggleOn: boolean;
    /**
     * Indicates the current state of an realtime toggle button.
     */
    isRealtimeToggleOn: boolean;
    /**
     * Holds the subscription to a countdown observable.
     */
    countdownSubscription: Subscription;
    /**
     * @inheritdoc
     */
    protected manuallyDisabledCountdown: boolean;
    toggleCountdownButtonTooltipText: string;
    globalAutoRefreshEnabled: boolean;
    constructor(alarmsViewService: AlarmsViewService, cdRef: ChangeDetectorRef, translateService: TranslateService, widgetGlobalAutoRefreshService: WidgetGlobalAutoRefreshService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    /**
     * @inheritdoc
     */
    countdownEnded(): void;
    reload(): void;
    /**
     * Toggles the real-time state of the component.
     *
     * This method switches the `isRealtimeToggleOn` state between true and false.
     * When the state is toggled, it emits the current state through `onRealTimeToggleChanged` event.
     * It also updates the `realtimeIconTitle` based on the new state.
     */
    toggleRealtimeState(): void;
    /**
     * Stops the countdown and triggers a refresh action.
     * This function is responsible for halting the countdown interval component's operation.
     * After stopping the countdown, it emits an `onCountdownEnded` event.
     * This event is used to inform external components that the countdown has ended,
     * typically prompting them to reload or refresh their data.
     */
    autoRefreshList(): void;
    /**
     * Sets the tooltip message for a new realtime alarm indicator.
     * @returns Tooltip message.
     */
    getRealtimeIconTitle(): string;
    /**
     * Enables and starts the countdown timer.
     *
     * This method makes the countdown visible (`hideCountdown` is set to false) and then
     * starts the countdown process. It ensures the countdown timer is updated immediately
     * by triggering change detection with `cdRef.detectChanges()` before starting the countdown.
     * This method encapsulates the logic required to initiate the countdown timer.
     */
    enableCountdown(): void;
    /**
     * @inheritdoc
     */
    protected updateCountdownButtonTooltipText(customText?: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlarmWidgetAlarmsReloadComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AlarmWidgetAlarmsReloadComponent, "c8y-alarm-widget-alarms-reload", never, { "isIntervalRefresh": { "alias": "isIntervalRefresh"; "required": false; }; "refreshInterval": { "alias": "refreshInterval"; "required": false; }; "config": { "alias": "config"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "isScrolling": { "alias": "isScrolling"; "required": false; }; "isRefreshDisabled": { "alias": "isRefreshDisabled"; "required": false; }; }, { "onCountdownEnded": "onCountdownEnded"; "onRealTimeToggleChanged": "onRealTimeToggleChanged"; }, never, never, false, never>;
}
//# sourceMappingURL=alarm-widget-alarms-reload.component.d.ts.map