import { Action } from '@ngrx/store';
export declare enum ActionTypes {
    StoreToken = "[ngx-tools-jwt-token-provider] Store Token",
    TokenNearingExpiration = "[ngx-tools-jwt-token-provider] Token Nearing Expiration",
    TokenExpired = "[ngx-tools-jwt-token-provider] Token Expired",
    EscalateToken = "[ngx-tools-jwt-token-provider] Escalate Token",
    EscalationSuccess = "[ngx-tools-jwt-token-provider] Escalation Success",
    EscalationFailed = "[ngx-tools-jwt-token-provider] Escalation Failed",
    AllTokensExpired = "[ngx-tools-jwt-token-provider] All Tokens have Expired",
    InitialTokenExtracted = "[ngx-tools-jwt-token-provider] Initial Token Extracted",
    FailedToActivateRoute = "[ngx-tools-jwt-token-provider] Failed To Activate Route"
}
export interface StoreTokenConstructor<C> {
    tokenName: Extract<keyof C, string>;
    token: string;
    isDefaultToken?: boolean;
}
/**
 * InitialTokenExtracted
 */
export declare class InitialTokenExtracted implements Action {
    token: string;
    type: typeof ActionTypes.InitialTokenExtracted;
    constructor(token: string);
}
/**
 * FailedToActivateRoute
 */
export declare class FailedToActivateRoute implements Action {
    type: typeof ActionTypes.FailedToActivateRoute;
}
/**
 * StoreToken
 */
export declare class StoreToken<C> implements Action {
    type: typeof ActionTypes.StoreToken;
    tokenName: Extract<keyof C, string>;
    token: string;
    isDefaultToken: boolean;
    constructor({ tokenName, token, isDefaultToken, }: StoreTokenConstructor<C>);
}
/**
 * TokenExpired
 */
export declare class TokenExpired<C> implements Action {
    type: typeof ActionTypes.TokenExpired;
    tokenName: Extract<keyof C, string>;
    token: string;
    constructor({ tokenName, token, }: {
        tokenName: Extract<keyof C, string>;
        token: string;
    });
}
/**
 * AllTokensExpired
 */
export declare class AllTokensExpired implements Action {
    type: typeof ActionTypes.AllTokensExpired;
}
/**
 * TokenNearingExpiration
 */
export declare class TokenNearingExpiration<C> implements Action {
    type: typeof ActionTypes.TokenNearingExpiration;
    tokenName: Extract<keyof C, string>;
    token: string;
    constructor({ tokenName, token, }: {
        tokenName: Extract<keyof C, string>;
        token: string;
    });
}
/**
 * EscalateToken
 */
export declare class EscalateToken<C> implements Action {
    tokenName: Extract<keyof C, string>;
    type: typeof ActionTypes.EscalateToken;
    constructor(tokenName: Extract<keyof C, string>);
}
/**
 * EscalationSuccess
 */
export declare class EscalationSuccess<C> implements Action {
    tokenName: Extract<keyof C, string>;
    type: typeof ActionTypes.EscalationSuccess;
    constructor(tokenName: Extract<keyof C, string>);
}
/**
 * EscalationFailed
 */
export declare class EscalationFailed<C> implements Action {
    tokenName: Extract<keyof C, string>;
    type: typeof ActionTypes.EscalationFailed;
    constructor(tokenName: Extract<keyof C, string>);
}
export declare type Actions<C> = AllTokensExpired | EscalateToken<C> | EscalationFailed<C> | EscalationSuccess<C> | InitialTokenExtracted | StoreToken<C> | TokenExpired<C> | TokenNearingExpiration<C>;
