import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { MonkeyEcxMeCredentials, MonkeyEcxTokenCredentials } from '../../interfaces';
import { MonkeyEcxConfigService } from '../config/monkeyecx-config.service';
import * as i0 from "@angular/core";
export declare class MonkeyEcxTokenStorageService {
    private monkeyecxConfigService;
    private store;
    private token;
    private token$;
    private me$;
    constructor(monkeyecxConfigService: MonkeyEcxConfigService, store: Store);
    private setAllTokens;
    private getAllTokens;
    private setAllMe;
    private getAllMe;
    tokenHasChanged(): Observable<MonkeyEcxTokenCredentials>;
    meHasChanged(): Observable<MonkeyEcxMeCredentials>;
    getToken(): Promise<any>;
    getMe(): Promise<any>;
    setToken(token: MonkeyEcxTokenCredentials): void;
    setMe(me: MonkeyEcxMeCredentials): void;
    clear(force?: boolean): Observable<boolean>;
    /**
     * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])
     */
    clearCredentials(fields?: string[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MonkeyEcxTokenStorageService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MonkeyEcxTokenStorageService>;
}
