/** Canonical chain identifiers. The string union is open-ended on purpose. */
export type WalletChain = 'nano' | 'solana' | 'ethereum' | 'base' | 'bitcoin' | string;
/** A signed binding between a passport and an external wallet address. */
export interface BoundWallet {
    chain: WalletChain;
    address: string;
    /** ISO 8601 timestamp when the binding was created. */
    bound_at: string;
    /**
     * Ed25519 signature over canonicalize({ passport_id, chain, address, bound_at }),
     * signed by the passport's private key. Verifiable with the passport public key
     * alone — no passport object required.
     */
    binding_signature: string;
    /**
     * Optional proof that the holder of the external wallet's private key
     * authorized the binding. Format depends on chain. For chains without
     * a native signing scheme on the SDK side, this is left undefined and
     * the binding rests on the passport signature alone.
     */
    verification_challenge?: WalletVerificationChallenge;
}
/**
 * Optional cross-key proof. The external wallet signs a challenge string
 * (typically the same canonical payload that produced binding_signature)
 * with its own private key, in whatever signature scheme the chain uses.
 */
export interface WalletVerificationChallenge {
    /** What the external wallet signed. SDK does not interpret. */
    challenge: string;
    /** External-wallet signature over `challenge`, encoded per chain convention. */
    signature: string;
    /** Signature scheme hint (e.g. 'ed25519', 'secp256k1', 'nano-block'). */
    scheme?: string;
}
/**
 * Signed unbind event. Produced by unbindWallet(). The unbind history is
 * preserved separately from the passport's current bound_wallets list so
 * verifiers can reconstruct the bind/unbind timeline if needed.
 */
export interface UnbindEvent {
    passport_id: string;
    chain: WalletChain;
    address: string;
    /** ISO 8601 timestamp when the unbind was created. */
    unbound_at: string;
    /**
     * Ed25519 signature over canonicalize({ passport_id, chain, address, unbound_at, event: 'unbind' }),
     * signed by the passport's private key.
     */
    unbind_signature: string;
}
//# sourceMappingURL=types.d.ts.map