import { AtpServiceClient, ComAtprotoServerCreateAccount, ComAtprotoServerCreateSession, ComAtprotoServerGetSession } from './client';
import { AtpSessionData, AtpAgentCreateAccountOpts, AtpAgentLoginOpts, AtpAgentFetchHandler, AtpAgentGlobalOpts, AtpPersistSessionHandler, AtpAgentOpts } from './types';
export declare class AtpAgent {
    service: URL;
    api: AtpServiceClient;
    session?: AtpSessionData;
    pdsUrl: URL | undefined;
    private _baseClient;
    private _persistSession?;
    private _refreshSessionPromise;
    get com(): import("./client").ComNS;
    static fetch: AtpAgentFetchHandler | undefined;
    static configure(opts: AtpAgentGlobalOpts): void;
    constructor(opts: AtpAgentOpts);
    get hasSession(): boolean;
    setPersistSessionHandler(handler?: AtpPersistSessionHandler): void;
    createAccount(opts: AtpAgentCreateAccountOpts): Promise<ComAtprotoServerCreateAccount.Response>;
    login(opts: AtpAgentLoginOpts): Promise<ComAtprotoServerCreateSession.Response>;
    resumeSession(session: AtpSessionData): Promise<ComAtprotoServerGetSession.Response>;
    private _addAuthHeader;
    private _fetch;
    private _refreshSession;
    private _refreshSessionInner;
    uploadBlob: typeof this.api.com.atproto.repo.uploadBlob;
    resolveHandle: typeof this.api.com.atproto.identity.resolveHandle;
    updateHandle: typeof this.api.com.atproto.identity.updateHandle;
    createModerationReport: typeof this.api.com.atproto.moderation.createReport;
    private _updateApiEndpoint;
}
