import type { User } from './utils';
import type { LocalStorage } from './utils/localStorage';
export type CurrentUser = User & {
    wallet?: string;
    blocknumber?: number;
    track_blocknumber?: number;
};
type UserStateManagerConfig = {
    localStorage?: LocalStorage;
};
/**
 * Singleton class to store the current user if initialized.
 * Some instances of AudiusLibs and services require a current user to
 * return valid queries, e.g. requesting the a discprov to return a reposted track.
 */
export declare class UserStateManager {
    currentUser: CurrentUser | null;
    localStorage?: LocalStorage;
    constructor({ localStorage }: UserStateManagerConfig);
    /**
     * Sets this.currentUser with currentUser
     * @param {Object} currentUser fields to override this.currentUser with
     */
    setCurrentUser(currentUser: CurrentUser): Promise<void>;
    getCurrentUser(): CurrentUser | null;
    getCurrentUserId(): number | null;
    clearUser(): Promise<void>;
}
export {};
