/**
 * API Response Types
 *
 * TypeScript types matching the Rust API response types from
 * privacy-boost-core/src/api/types.rs
 */
export interface ServerInfo {
    chainId: number;
    shieldContractAddress: string;
    teePublicKey: string;
    relayAddress: string;
    poolAddress: string;
    tokenRegistryAddress?: string;
    wethContractAddress?: string;
}
export interface TokenInfo {
    id: number;
    tokenType: number;
    tokenAddress: string;
    tokenSubId: string;
    decimals?: number;
    symbol?: string;
    priceUSD?: number;
    minDepositAmount?: string;
}
export interface NoteEntry {
    commitment: string;
    leafIndex: number;
    treeNumber: number;
    tokenId: number;
    value: string;
    noteRnd: string;
    npk: string;
    blockNumber: number;
}
export interface WalletNoteEntry {
    accountId: string;
    leafIndex: number;
    treeNumber: number;
    commitment: string;
    tokenId: number;
    amount: string;
    noteRnd: string;
    isSpent: boolean;
    isOpaque: boolean;
    createdTxHash: string;
    shieldAppId: string;
    spendAppId?: string;
    spentTxHash?: string;
}
export interface WalletNotesResponse {
    data: WalletNoteEntry[];
    limit: number;
    next?: string;
}
export interface TreeState {
    currentTreeNumber: number;
    nextLeafIndex: number;
    root: string;
}
export interface ChallengeResponse {
    nonce: string;
    nonceHmac?: string;
}
export interface WalletLoginResponse {
    token: string;
    expiresIn: number;
    vaultExists: boolean;
    accountId?: string;
    tier?: string;
}
export interface AuthUpgradeResponse {
    token: string;
    expiresIn: number;
}
export interface SessionInfo {
    mpk: string;
    isAuditor: boolean;
    valid: boolean;
    expiresAt: number;
}
export interface VaultInitResponse {
    ok: boolean;
}
export interface VaultUnlockResponse {
    serverShare: string;
}
export interface TransferSubmitResponse {
    requestId: string;
}
export interface WithdrawalSubmitResponse {
    requestId: string;
}
export interface ShieldStatusResponse {
    status: string;
    txHash?: string;
}
export interface TransferStatusResponse {
    status: string;
    txHash?: string;
}
export interface UnshieldStatusResponse {
    status: string;
    txHash?: string;
    amount?: string;
}
export interface FeeRatesResponse {
    transferFeeFlat: string;
    unshieldFeeBps: number;
    feeModel?: string;
    minTransferAmountUSD?: number;
}
export interface IdentityResponse {
    mpk: string;
    viewingPublicKeyX: string;
    viewingPublicKeyY: string;
    privacyAddress: string;
    userAlias?: string;
}
export interface WalletBalanceEntry {
    tokenId: number;
    balance: string;
    noteCount: number;
}
export interface WalletBalancesResponse {
    pubkey: string;
    balances: WalletBalanceEntry[];
}
export interface TransactionHistoryEntry {
    txHash: string;
    type: string;
    status: string;
    tokenAddress: string;
    amount: string;
    timestamp: number;
    direction?: string;
    to?: string;
    from?: string;
}
export interface TransactionHistoryResponse {
    transactions: TransactionHistoryEntry[];
    cursor?: string;
    hasMore: boolean;
}
//# sourceMappingURL=types.d.ts.map