import * as i0 from '@angular/core';
import { OnInit, OnDestroy, ModuleWithProviders } from '@angular/core';
import { Observable, BehaviorSubject } from 'rxjs';
import * as i2 from '@angular/common';
import * as _ngrx_store from '@ngrx/store';
import * as i4 from '@ngrx/effects';
import * as i5 from '@progress/kendo-angular-dialog';
import * as i6 from '@progress/kendo-angular-buttons';

interface IdleConfig {
    timeoutWarningInMs: number;
    autoLogoutInMs: number;
}

declare class IdleFacade {
    private readonly store;
    isTimingOut$: Observable<boolean>;
    timeOutSpanInMs$: Observable<number | undefined>;
    extendSession(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<IdleFacade, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<IdleFacade>;
}

declare class IdleWarningComponent implements OnInit, OnDestroy {
    readonly idleFacade: IdleFacade;
    readonly isSessionTimingOut$: BehaviorSubject<boolean>;
    secondsRemaining$?: Observable<number>;
    private timeoutSub?;
    ngOnInit(): void;
    ngOnDestroy(): void;
    close(): void;
    extend(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<IdleWarningComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IdleWarningComponent, "imng-idle-warning", never, {}, {}, never, never, false, never>;
}

declare class ImngNgrxIdleModule {
    static forRoot(idleConfig: IdleConfig): ModuleWithProviders<ImngNgrxIdleModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImngNgrxIdleModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ImngNgrxIdleModule, [typeof IdleWarningComponent], [typeof i2.CommonModule, typeof _ngrx_store.StoreFeatureModule, typeof i4.EffectsFeatureModule, typeof i5.DialogModule, typeof i6.ButtonsModule], [typeof IdleWarningComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ImngNgrxIdleModule>;
}

declare const IDLE_FEATURE_KEY = "idle";
interface IdleState {
    isTimingOut: boolean;
    timeoutSpanInMs: number | undefined;
}
declare const initialState: IdleState;
declare const idleFeature: {
    name: "idle";
    reducer: _ngrx_store.ActionReducer<IdleState, _ngrx_store.Action<string>>;
    selectIdleState: _ngrx_store.MemoizedSelector<Record<string, any>, IdleState, (featureState: IdleState) => IdleState>;
    selectIsTimingOut: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (featureState: IdleState) => boolean>;
    selectTimeoutSpanInMs: _ngrx_store.MemoizedSelector<Record<string, any>, number | undefined, (featureState: IdleState) => number | undefined>;
};

export { IDLE_FEATURE_KEY, IdleFacade, IdleWarningComponent, ImngNgrxIdleModule, idleFeature, initialState };
export type { IdleState };
