import { type AtIdentifierString, type DatetimeString, type DidString, type HandleString } from '@atproto/lex'; import type { com } from '../../lexicons/index.js'; import type { AccountDb, ActorEntry } from '../db/index.js'; export declare class UserAlreadyExistsError extends Error { name: string; constructor(message?: string, options?: ErrorOptions); } export type ActorAccount = ActorEntry & { email: string | null; emailConfirmedAt: string | null; invitesDisabled: 0 | 1 | null; }; export type AvailabilityFlags = { includeTakenDown?: boolean; includeDeactivated?: boolean; }; export declare enum AccountStatus { Active = "active", Takendown = "takendown", Suspended = "suspended", Deleted = "deleted", Deactivated = "deactivated" } export declare const selectAccountQB: (db: AccountDb, flags?: AvailabilityFlags) => import("kysely").SelectQueryBuilder<{ account: import("kysely").Nullable; account_device: import("../db/index.js").AccountDevice; actor: import("../db/index.js").Actor; app_password: import("../db/index.js").AppPassword; authorization_request: import("../db/index.js").AuthorizationRequest; authorized_client: import("../db/schema/authorized-client.js").AuthorizedClient; device: import("../db/index.js").Device; email_token: import("../db/index.js").EmailToken; invite_code: import("../db/index.js").InviteCode; invite_code_use: import("../db/index.js").InviteCodeUse; lexicon: import("../db/index.js").Lexicon; refresh_token: import("../db/index.js").RefreshToken; repo_root: import("../db/index.js").RepoRoot; token: import("../db/index.js").Token; used_refresh_token: import("../db/index.js").UsedRefreshToken; }, "account" | "actor", Partial> & { createdAt: string; deactivatedAt: string | null; deleteAfter: string | null; did: `did:${string}:${string}`; email: string | null; emailConfirmedAt: DatetimeString | null; handle: `${string}.${string}` | null; invitesDisabled: 0 | 1 | null; takedownRef: string | null; }>; export declare const getAccount: (db: AccountDb, handleOrDid: AtIdentifierString, flags?: AvailabilityFlags) => Promise; export declare const getAccounts: (db: AccountDb, dids: DidString[], flags?: AvailabilityFlags) => Promise>; export declare const getAccountByEmail: (db: AccountDb, email: string, flags?: AvailabilityFlags) => Promise; export declare const registerActor: (db: AccountDb, opts: { did: DidString; handle: HandleString; deactivated?: boolean; }) => Promise; export declare const registerAccount: (db: AccountDb, opts: { did: string; email: string; passwordScrypt: string; }) => Promise; export declare const deleteAccount: (db: AccountDb, did: DidString) => Promise; export declare const updateHandle: (db: AccountDb, did: DidString, handle: HandleString) => Promise; export declare const updateEmail: (db: AccountDb, did: DidString, email: string) => Promise; export declare const setEmailConfirmedAt: (db: AccountDb, did: DidString, emailConfirmedAt: DatetimeString) => Promise; export declare const getAccountAdminStatus: (db: AccountDb, did: DidString) => Promise<{ takedown: com.atproto.admin.defs.StatusAttr; deactivated: com.atproto.admin.defs.StatusAttr; } | null>; export declare const updateAccountTakedownStatus: (db: AccountDb, did: DidString, takedown: com.atproto.admin.defs.StatusAttr) => Promise; export declare const deactivateAccount: (db: AccountDb, did: DidString, deleteAfter: string | null) => Promise; export declare const activateAccount: (db: AccountDb, did: DidString, flags?: AvailabilityFlags) => Promise; export declare const formatAccountStatus: (account: null | { takedownRef: string | null; deactivatedAt: string | null; }) => { readonly active: false; readonly status: AccountStatus.Deleted; } | { readonly active: false; readonly status: AccountStatus.Takendown; } | { readonly active: false; readonly status: AccountStatus.Deactivated; } | { readonly active: true; readonly status: undefined; }; //# sourceMappingURL=account.d.ts.map