/** * Client-side input validation. * * Produces clear {@link ValidationError}s before submission instead of opaque * on-chain or WebCrypto failures. The smart wallet imposes no signer-count caps * (unlike a policy-based account), so validation here is about shapes and * ranges: addresses, amounts, expirations, and secp256r1 public keys. * * @packageDocumentation */ /** * Validate that a string is a Stellar account (`G…`) or contract (`C…`) address. * * @throws {ValidationError} If the address is missing or malformed. */ export declare function validateAddress(address: string, fieldName?: string): void; /** * Validate that an amount is a positive, finite number. * * @throws {ValidationError} If the amount is not a positive number. */ export declare function validateAmount(amount: number, fieldName?: string): void; /** * Validate a signer expiration. * * The contract types signer expiration as `Option` UNIX seconds, so the * accepted range here is the `u64`-compatible safe-integer range: a * non-negative integer up to `Number.MAX_SAFE_INTEGER` (the kit carries the * value as a JS number before converting to `BigInt`). `undefined` means "no * expiration". Capping at `u32` (the old bound) would reject post-2106 * timestamps the contract accepts. * * @throws {ValidationError} If the expiration is out of range. */ export declare function validateExpiration(expiration: number | undefined, fieldName?: string): void; /** * Validate a secp256r1 public key: 65 bytes, uncompressed (`0x04`) prefix. * * @throws {ValidationError} If the key is not a valid uncompressed EC point. */ export declare function validateSecp256r1PublicKey(publicKey: Uint8Array, fieldName?: string): void; //# sourceMappingURL=validation.d.ts.map