import { InjectionToken } from "injection-js"; import { Observable } from "rxjs"; import { IRequestError, RequestAdapter } from "../../internal/requestAdapter"; import { Logger } from "../logger/logger"; import { Dispatcher } from "../core/dispatcher"; export declare type Tokens = { access_token: string; refresh_token: string; }; export interface IAuthOptions { readonly projectID?: string | null; readonly zone?: string | null; readonly projectURL?: string | null; auth?: string; readonly key?: string; readonly secret?: string; readonly refreshInterval?: number; readonly remember?: boolean; } export declare const AuthOptions: InjectionToken; export declare class TokenManager { private requestAdapter; private logger; private dispatcher; readonly authOptionsError: Error; private config; private refreshes; private initPromise; private defers; private get resolved(); private storage; get defaultAuthAlias(): string; constructor(requestAdapter: RequestAdapter, logger: Logger, dispatcher: Dispatcher); token(auth?: string): Observable; private validateAuthOptions; init(opts: IAuthOptions): Promise; terminate(): void; setDefault(auth: string): void; resetDefault(): void; addTokens(aliases: Array, tokens: Tokens, defaults?: boolean): void; removeTokens(alias: string): void; private startRefreshDigest; private removeRefreshDigest; private login; private refresh; private obtainTokens; private get url(); private get authUrl(); private get refreshUrl(); getErrorMessage({ httpStatus: { code, status } }: IRequestError): string; validateTokenAlias(alias?: string): boolean | string; }