import { AppConfig } from './appConfig';
import { SessionOptions } from './sessionData';
import { SessionDataStore } from './sessionStore';
import { EncryptContentOptions } from '@stacks/encryption';
import { FetchFn } from '@stacks/common';
import { AuthScope } from './constants';
import { UserData } from './userData';
export declare class UserSession {
    appConfig: AppConfig;
    store: SessionDataStore;
    constructor(options?: {
        appConfig?: AppConfig;
        sessionStore?: SessionDataStore;
        sessionOptions?: SessionOptions;
    });
    makeAuthRequestToken(transitKey?: string, redirectURI?: string, manifestURI?: string, scopes?: (AuthScope | string)[], appDomain?: string, expiresAt?: number, extraParams?: any): string;
    generateAndStoreTransitKey(): string;
    getAuthResponseToken(): string;
    isSignInPending(): boolean;
    isUserSignedIn(): boolean;
    handlePendingSignIn(authResponseToken?: string, fetchFn?: FetchFn): Promise<UserData>;
    loadUserData(): UserData;
    encryptContent(content: string | Uint8Array, options?: EncryptContentOptions): Promise<string>;
    decryptContent(content: string, options?: {
        privateKey?: string;
    }): Promise<Uint8Array | string>;
    signUserOut(redirectURL?: string): void;
}
export interface UserSession {
    makeAuthRequest(...args: Parameters<typeof UserSession.prototype.makeAuthRequestToken>): ReturnType<typeof UserSession.prototype.makeAuthRequestToken>;
}
