import { InjectionToken } from '@angular/core';
import { Actions } from '@ngrx/effects';
import { Store } from '@ngrx/store';
import { TsCookieService } from '@terminus/ngx-tools/browser';
import { Scheduler } from 'rxjs';
import * as JwtTokenProviderActions from './actions';
export interface Claims {
    exp: number;
}
export interface MinimalClaimMap {
    [id: string]: Claims;
}
export declare const SECONDS_BEFORE_EXPIRATION_TO_NOTIFY: InjectionToken<number>;
export declare class JwtTokenProviderEffects {
    private actions$;
    private store;
    private cookieService;
    private initialTokenName;
    private scheduler;
    private timeToWaitBeforeExpiration;
    constructor(actions$: Actions<JwtTokenProviderActions.Actions<MinimalClaimMap>>, store: Store<any>, cookieService: TsCookieService, initialTokenName: string, scheduler: Scheduler, timeToWaitBeforeExpiration: number);
    initializationCleanup$: import("rxjs").Observable<JwtTokenProviderActions.StoreToken<MinimalClaimMap>>;
    allTokensExpired$: import("rxjs").Observable<JwtTokenProviderActions.AllTokensExpired>;
    notifyOfTokenExpiration$: import("rxjs").Observable<JwtTokenProviderActions.TokenExpired<MinimalClaimMap> | JwtTokenProviderActions.TokenNearingExpiration<MinimalClaimMap>>;
    initialCookieLoader$: ({ currentState, }?: {
        currentState?: import("rxjs").Observable<import("./state").State<unknown>>;
    }) => import("rxjs").Observable<JwtTokenProviderActions.InitialTokenExtracted | JwtTokenProviderActions.StoreToken<{
        [x: string]: {};
    }>>;
    buildDelayedExpirationObservable(emitTime: number | Date, action: JwtTokenProviderActions.StoreToken<MinimalClaimMap>, expired: boolean): import("rxjs").Observable<JwtTokenProviderActions.TokenExpired<MinimalClaimMap> | JwtTokenProviderActions.TokenNearingExpiration<MinimalClaimMap>>;
}
