import { Client } from '@did-plc/lib'; import { Keypair } from '@atproto/crypto'; import { HandleString } from '@atproto/lex'; import { Account, AccountStore, AuthenticateAccountData, AuthorizedClientData, AuthorizedClients, ClientId, Code, DeviceAccount, DeviceData, DeviceId, DeviceStore, FoundRequestResult, LexiconData, LexiconStore, NewTokenData, RefreshToken, RequestData, RequestId, RequestStore, ResetPasswordConfirmInput, ResetPasswordRequestInput, SignUpData, Sub, TokenData, TokenId, TokenInfo, TokenStore, UpdateRequestData } from '@atproto/oauth-provider'; import { ActorStore } from '../actor-store/actor-store'; import { BackgroundQueue } from '../background'; import { ImageUrlBuilder } from '../image/image-url-builder'; import { ServerMailer } from '../mailer'; import { Sequencer } from '../sequencer'; import { AccountManager } from './account-manager'; /** * This class' purpose is to implement the interface needed by the OAuthProvider * to interact with the account database (through the {@link AccountManager}). * * @note The use of this class assumes that there is no entryway. */ export declare class OAuthStore implements AccountStore, RequestStore, DeviceStore, LexiconStore, TokenStore { private readonly accountManager; private readonly actorStore; private readonly imageUrlBuilder; private readonly backgroundQueue; private readonly mailer; private readonly sequencer; private readonly plcClient; private readonly plcRotationKey; private readonly publicUrl; private readonly recoveryDidKey; constructor(accountManager: AccountManager, actorStore: ActorStore, imageUrlBuilder: ImageUrlBuilder, backgroundQueue: BackgroundQueue, mailer: ServerMailer, sequencer: Sequencer, plcClient: Client, plcRotationKey: Keypair, publicUrl: string, recoveryDidKey: string | null); private get db(); private get serviceDid(); private verifyEmailAvailability; private verifyInviteCode; createAccount({ locale: _locale, inviteCode, handle, email, password, }: SignUpData): Promise; authenticateAccount({ locale: _locale, username: identifier, password, emailOtp, }: AuthenticateAccountData): Promise; setAuthorizedClient(sub: Sub, clientId: ClientId, data: AuthorizedClientData): Promise; getAccount(sub: Sub): Promise<{ account: Account; authorizedClients: AuthorizedClients; }>; upsertDeviceAccount(deviceId: DeviceId, sub: string): Promise; getDeviceAccount(deviceId: DeviceId, sub: string): Promise; removeDeviceAccount(deviceId: DeviceId, sub: Sub): Promise; listDeviceAccounts(filter: { sub: Sub; } | { deviceId: DeviceId; }): Promise; resetPasswordRequest({ locale: _locale, email, }: ResetPasswordRequestInput): Promise; resetPasswordConfirm(data: ResetPasswordConfirmInput): Promise; verifyHandleAvailability(handle: HandleString): Promise; createRequest(id: RequestId, data: RequestData): Promise; readRequest(id: RequestId): Promise; updateRequest(id: RequestId, data: UpdateRequestData): Promise; deleteRequest(id: RequestId): Promise; consumeRequestCode(code: Code): Promise; createDevice(deviceId: DeviceId, data: DeviceData): Promise; readDevice(deviceId: DeviceId): Promise; updateDevice(deviceId: DeviceId, data: Partial): Promise; deleteDevice(deviceId: DeviceId): Promise; findLexicon(nsid: string): Promise; storeLexicon(nsid: string, data: LexiconData): Promise; deleteLexicon(nsid: string): Promise; createToken(id: TokenId, data: TokenData, refreshToken?: RefreshToken): Promise; listAccountTokens(sub: Sub): Promise; readToken(tokenId: TokenId): Promise; deleteToken(tokenId: TokenId): Promise; rotateToken(tokenId: TokenId, newTokenId: TokenId, newRefreshToken: RefreshToken, newData: NewTokenData): Promise; findTokenByRefreshToken(refreshToken: RefreshToken): Promise; findTokenByCode(code: Code): Promise; private toTokenInfo; private buildAccount; } //# sourceMappingURL=oauth-store.d.ts.map