import type { PubkeyStr } from "../shared"; export * from "./client"; export * from "./native"; export interface User { id: string; wallet_address: string; linked_account: LinkedAccount; privy_id?: string; embedded_wallet?: EmbeddedWallet; x_username?: string; x_user_id?: string; x_display_name?: string; google_email?: string; /** * How this session authenticated. `Privy` ⇒ the embedded wallet is the * trading identity; `Lightcone` ⇒ self-custody session, the linked wallet is. */ auth_method: AuthMethod; } /** * How a session authenticated, as reported by the backend (derived from which * token verified the request). */ export declare enum AuthMethod { Privy = "privy", Lightcone = "lightcone" } export interface LinkedAccount { id: string; type: LinkedAccountType; chain?: ChainType; address: string; } export declare enum LinkedAccountType { Wallet = "wallet", TwitterOauth = "twitter_oauth", GoogleOauth = "google_oauth" } export declare enum ChainType { Solana = "solana", Ethereum = "ethereum" } export interface EmbeddedWallet { privy_id: string; chain: ChainType; address: string; } export interface AuthCredentials { user_id: string; wallet_address: PubkeyStr; expires_at: Date; } export declare function isAuthenticated(credentials?: AuthCredentials): boolean; export declare function generateSigninMessage(nonce: string): Uint8Array; export interface LoginRequest { message: string; signature_bs58: string; pubkey_bytes: number[]; use_embedded_wallet?: boolean; } export interface LoginResponse { user_id: string; wallet_address: string; expires_at: number; linked_account: LinkedAccount; privy_id?: string; embedded_wallet?: EmbeddedWallet; x_username?: string; x_user_id?: string; x_display_name?: string; google_email?: string; auth_method: AuthMethod; } export interface MeResponse { user_id: string; wallet_address: string; linked_account: LinkedAccount; privy_id?: string; embedded_wallet?: EmbeddedWallet; x_username?: string; x_user_id?: string; x_display_name?: string; google_email?: string; expires_at: number; auth_method: AuthMethod; } export interface NonceResponse { nonce: string; } //# sourceMappingURL=index.d.ts.map