import { ApiClient } from "./client"; type AuthProvider = "discord"; export type LinkedWalletAccount = { type: "wallet"; btcAddress?: string; evmAddress: string; }; export type LinkedProviderAccount = { type: AuthProvider; name: string; id: string; avatarUrl: string; }; export type LinkedAccount = LinkedWalletAccount | LinkedProviderAccount; type UserDocumentStatus = { acceptedVersion?: string; acceptedAt?: string; isCurrentVersionAccepted: boolean; }; export type DocumentType = "termsOfUse" | "privacyPolicy"; type Account = { mezoId: string; hasModifiedMezoId: boolean; linkedAccounts: LinkedAccount[]; documents?: Record; email?: string; telegram?: string; }; export type Session = { expiresIn: number; expiresAt: number; sessionLinks: { _links: { account: string; }; }; }; export type AuthenticationProviderRedirectResponse = { redirectTo: string; }; export type SignatureData = { message: string; signature: string; }; export type GetSessionResponse = Session | { nonce: string; }; export type CreateSessionRequest = ({ type: "wallet"; } & SignatureData) | { type: "discord"; }; export type CreateSessionResponse = Session | AuthenticationProviderRedirectResponse; export type DeleteSessionResponse = { message: string; }; export type GetCurrentAccountResponse = Partial | null; export type GetAccountByMezoIdOrAddressResponse = { mezoId?: string; linkedAccounts?: Extract[]; }; export type LinkAccountRequest = CreateAccountRequest | { type: "discord"; }; export type LinkAccountResponse = Account | AuthenticationProviderRedirectResponse; export type CreateAccountRequest = { type: "wallet"; } & SignatureData & { bitcoinPublicKey?: string; }; export type CreateAccountResponse = Account; export type UpdateMezoIdResponse = Account; export type AcceptDocumentsResponse = Account; export type GetDocumentVersionsResponse = Record; export type AcceptDocumentsRequest = Partial>; export type UpdateAccountRequest = { mezoId?: string; email?: string; telegram?: string; }; export type UpdateAccountResponse = Account; export declare const AUTH_API_ENDPOINTS_BY_ENV: { mainnet: string; testnet: string; }; export declare class AuthApiClient extends ApiClient { constructor(environment?: keyof typeof AUTH_API_ENDPOINTS_BY_ENV, apiUrl?: string); getSession(code?: string): Promise; createSession(createSessionRequest: CreateSessionRequest): Promise; deleteSession(): Promise; getCurrentAccount(): Promise; getAccountByMezoIdOrAddress(mezoIdOrAddress: string): Promise; linkAccount(linkAccountRequest: LinkAccountRequest): Promise; createAccount(createAccountRequest: CreateAccountRequest): Promise; updateMezoId(newMezoId: string): Promise; acceptDocuments(payload: AcceptDocumentsRequest): Promise; getDocumentVersions(): Promise; updateAccount(updates: UpdateAccountRequest): Promise; } export {}; //# sourceMappingURL=auth.d.ts.map