import type { ArkmeSessionCredentials, ArkmeSessionStore } from './keychain-store.js'; import type { FetchLike } from './services/service.js'; export type ArkmeAccountScopeIdentity = { kind: 'guest'; } | { kind: 'account'; userId: number; claimCurrentGuest?: boolean; }; export interface ArkmeAccountScopeBridge { attest(identity: ArkmeAccountScopeIdentity): Promise<{ status: 'ready' | 'relaunch'; }>; prepare(identity: ArkmeAccountScopeIdentity): Promise<{ transitionRef: string; }>; commit(transitionRef: string): Promise<{ status: 'ready' | 'relaunch'; }>; abort(transitionRef: string): Promise<{ status: 'ready'; }>; } export declare class ArkmeAccountSessionOwner { private readonly store; private readonly bridge?; private readonly bridgeRequired; private readyIdentity; private startTask; private mutationTail; private readonly listeners; private guestConversationProbe; private scopeCloseBarrier; constructor(store: ArkmeSessionStore, bridge?: ArkmeAccountScopeBridge | undefined, bridgeRequired?: boolean); start(): Promise; attachGuestConversationProbe(probe: () => Promise): void; attachScopeCloseBarrier(barrier: () => Promise): void; write(session: ArkmeSessionCredentials, shouldWrite?: () => Promise): Promise; updateAccessToken(expected: ArkmeSessionCredentials, accessToken: string): Promise; delete(): Promise; deleteIfCurrent(expected: ArkmeSessionCredentials, beforeDelete?: (current: ArkmeSessionCredentials) => Promise): Promise; private clearSession; scopedSession(): Promise; ready(): boolean; subscribe(listener: () => void): () => void; private attestCurrent; private transition; private serial; private setReady; } export declare function createArkmeAccountSessionOwner(store: ArkmeSessionStore, fetchImpl: FetchLike, env?: Readonly>): ArkmeAccountSessionOwner; //# sourceMappingURL=account-session-owner.d.ts.map