import { AlEntitlementCollection } from '@al/core';
import { AlExecutionContext } from '@al/core';
import { AlNetworkRequestDescriptor } from '@al/core';
import { AlNetworkResponse } from '@al/core';

export declare class AlTestExecutionContext extends AlExecutionContext {
    openRequests: {
        request: AlNetworkRequestDescriptor;
        resolve: Function;
        reject: Function;
    }[];
    constructor();
    base64Encode(data: string): string;
    base64Decode(data: string): string;
    handleRequest<T = any>(request: AlNetworkRequestDescriptor): Promise<AlNetworkResponse<T>>;
    static clearAuthState(): any;
    static setAuthState(state: MockSessionState | string | null, actingAccountId?: string, userId?: string): Promise<any>;
    static createEntitlementSet(entitlements?: string[]): AlEntitlementCollection;
}

declare interface MockSessionState {
    accountId: string;
    entitlements?: string[];
    primaryEntitlements?: string[];
    actingAccountId?: string;
    userId?: string;
    userName?: string;
    accessibleLocationIds?: string[];
    locationId?: string;
    environment?: string;
    residency?: string;
}

export { }
