export interface SiweMessageOptions { /** * EIP-155 chain id the wallet is connected to. The verifier requires a * positive safe integer; write-time chain/runtime policy is enforced * separately before transaction signing. Defaults to 1 when unavailable. */ chainId?: number; /** Single-line statement (must not contain a newline). Defaults to the canonical prompt. */ statement?: string; /** Issued-at instant. Defaults to now. */ issuedAt?: Date; /** Expiration instant. Defaults to issuedAt + 5 min (inside the issuer's 10-min cap). */ expirationTime?: Date; /** EIP-4361 version; the grammar fixes this at "1". */ version?: string; } /** * Build the canonical EIP-4361 SIWE message the bounded-auth issuer verifies. * * @param address the connected EVM account (lowercased into the prompt). * @param nonce single-use nonce from genAuthNonce(). * @param appId the target app id (bound as the sole `bounded:app:` resource). * @param domain RFC-3986 authority of the requesting site (e.g. window.location.host). * @param uri the requesting URI; its origin is bound to the domain and actual browser Origin. */ export declare function genSiweMessage(address: string, nonce: string, appId: string, domain: string, uri: string, options?: SiweMessageOptions): string; /** * Lowercase an EVM address to the canonical identity form. EVM addresses are * case-insensitive on-chain but the identity layer (@user.evmAddress) matches * case-sensitively, so every boundary normalizes to lowercase. Does not validate * shape — use normalizeEvmAddress() when the input is untrusted. */ export declare function toLowerEvmAddress(address: string): string; /** * Normalize an untrusted EVM address to canonical lowercase 0x-hex, or null when * it isn't a well-formed 20-byte hex address. Mirrors the realtime-worker's * normalizeEvmAddress (auth.ts) EXACTLY so a client-derived @user.evmAddress and * the server-authenticated one are byte-identical (fail-closed on malformed). */ export declare function normalizeEvmAddress(raw: unknown): string | null;