import type { ArkmeSessionCredentials } from '../keychain-store.js'; import type { ArkmeLocalDatabase } from '../local-database.js'; import type { SelfRoleAvatarStore } from '../self-role-avatar-store.js'; import type { CloudSelfRoleSnapshot } from '../self-role-sync-store.js'; import type { MediaService } from './media-service.js'; import { ServiceRuntime } from './service.js'; /** Account-scoped role recovery. Existing message senders only request a frozen * snapshot; role CRUD does not enqueue or resend message content. */ export declare class SelfRoleService { private readonly runtime; private readonly local; private readonly avatars; private readonly media; private readonly active; private timer; private closed; constructor(runtime: ServiceRuntime, local: ArkmeLocalDatabase | undefined, avatars: SelfRoleAvatarStore, media: MediaService); start(): () => void; dispose(): void; private assertAccount; private asset; private cloudSnapshot; private flush; prepare(session: ArkmeSessionCredentials, recordUid: string): Promise; acknowledge(session: ArkmeSessionCredentials, uid: string): void; private exclusive; refresh(): Promise; } //# sourceMappingURL=self-role-service.d.ts.map