import { KeyObject } from 'node:crypto'; import { IdResolver } from '@atproto/identity'; import { AtIdentifierString, DidString, HandleString } from '@atproto/lex'; import { Cid } from '@atproto/lex-data'; import { com } from '../lexicons/index.js'; import { AccountDb, EmailTokenPurpose } from './db'; import * as account from './helpers/account'; import { AccountStatus, ActorAccount } from './helpers/account'; import * as password from './helpers/password'; export { AccountStatus, formatAccountStatus } from './helpers/account'; export type AccountManagerDbConfig = { accountDbLoc: string; disableWalAutoCheckpoint: boolean; }; export declare class AccountManager { readonly idResolver: IdResolver; readonly jwtKey: KeyObject; readonly serviceDid: string; readonly serviceHandleDomains: string[]; readonly db: AccountDb; constructor(idResolver: IdResolver, jwtKey: KeyObject, serviceDid: string, serviceHandleDomains: string[], db: AccountManagerDbConfig); migrateOrThrow(): Promise; close(): void; getAccount(handleOrDid: AtIdentifierString, flags?: account.AvailabilityFlags): Promise; getAccounts(dids: DidString[], flags?: account.AvailabilityFlags): Promise>; getAccountByEmail(email: string, flags?: account.AvailabilityFlags): Promise; isAccountActivated(did: DidString): Promise; getDidForActor(handleOrDid: AtIdentifierString, flags?: account.AvailabilityFlags): Promise; getAccountStatus(handleOrDid: AtIdentifierString): Promise; normalizeAndValidateHandle(handle: string, { did, allowAnyValid, }?: { did?: string; allowAnyValid?: boolean; }): Promise; createAccount({ did, handle, email, password, repoCid, repoRev, inviteCode, deactivated, refreshJwt, }: { did: DidString; handle: HandleString; email?: string; password?: string; repoCid: Cid; repoRev: string; inviteCode?: string; deactivated?: boolean; refreshJwt?: string; }): Promise; createAccountAndSession(opts: { did: DidString; handle: HandleString; email?: string; password?: string; repoCid: Cid; repoRev: string; inviteCode?: string; deactivated?: boolean; }): Promise<{ accessJwt: string; refreshJwt: string; }>; updateHandle(did: DidString, handle: HandleString): Promise; deleteAccount(did: DidString): Promise; takedownAccount(did: DidString, takedown: com.atproto.admin.defs.StatusAttr): Promise; getAccountAdminStatus(did: DidString): Promise<{ takedown: com.atproto.admin.defs.StatusAttr; deactivated: com.atproto.admin.defs.StatusAttr; } | null>; updateRepoRoot(did: DidString, cid: Cid, rev: string): Promise; deactivateAccount(did: DidString, deleteAfter: string | null): Promise; activateAccount(did: DidString): Promise; createSession(did: DidString, appPassword: password.AppPassDescript | null, isSoftDeleted?: boolean): Promise<{ accessJwt: string; refreshJwt: string; }>; rotateRefreshToken(id: string): any; revokeRefreshToken(id: string): Promise; login({ identifier, password, }: { identifier: string; password: string; }): Promise<{ user: ActorAccount; appPassword: password.AppPassDescript | null; isSoftDeleted: boolean; }>; createAppPassword(did: DidString, name: string, privileged: boolean): Promise; listAppPasswords(did: DidString): Promise<{ name: string; createdAt: import("@atproto/lex").DatetimeString; privileged: boolean; }[]>; verifyAccountPassword(did: DidString, passwordStr: string): Promise; verifyAppPassword(did: DidString, passwordStr: string): Promise; revokeAppPassword(did: DidString, name: string): Promise; ensureInviteIsAvailable(code: string): Promise; createInviteCodes(toCreate: { account: string; codes: string[]; }[], useCount: number): Promise; createAccountInviteCodes(forAccount: string, codes: string[], expectedTotal: number, disabled: 0 | 1): Promise; getAccountInvitesCodes(did: DidString): Promise; getAccountsInvitesCodes(dids: DidString[]): Promise>; getInvitedByForAccounts(dids: DidString[]): Promise>; getInviteCodesUses(codes: string[]): Promise>; setAccountInvitesDisabled(did: DidString, disabled: boolean): Promise; disableInviteCodes(opts: { codes: string[]; accounts: string[]; }): Promise; createEmailToken(did: DidString, purpose: EmailTokenPurpose): Promise; assertValidEmailToken(did: DidString, purpose: EmailTokenPurpose, token: string): Promise; assertValidEmailTokenAndCleanup(did: DidString, purpose: EmailTokenPurpose, token: string): Promise; confirmEmail(opts: { did: DidString; token: string; }): Promise; updateEmail(opts: { did: DidString; email: string; }): Promise; resetPassword(opts: { password: string; token: string; }): Promise<`did:${string}:${string}`>; updateAccountPassword(opts: { did: DidString; password: string; }): Promise; } //# sourceMappingURL=account-manager.d.ts.map