/**
 * TokenManager
 *
 * Handles all the operations around user token.
 */
export declare class TokenManager {
    loadTokenPromise: Promise<string> | null;
    type: 'static' | 'provider';
    token?: string;
    tokenProvider?: string | (() => Promise<string>);
    constructor();
    /**
     * Set the static string token or token provider.
     * Token provider should return a token string or a promise which resolves to string token.
     *
     * @param {TokenOrProvider} tokenOrProvider - the token or token provider.
     * @param {UserResponse} user - the user object.
     * @param {boolean} isAnonymous - whether the user is anonymous or not.
     */
    setTokenOrProvider: (tokenOrProvider?: string | (() => Promise<string>)) => void;
    /**
     * Resets the token manager.
     * Useful for client disconnection or switching user.
     */
    reset: () => void;
    loadToken: () => Promise<string>;
    getToken: () => string | Promise<string>;
    isStatic: () => boolean;
}
