import { RelayClient, type DepositWalletCall } from "@polymarket/builder-relayer-client";
import { type Hex } from "viem";
export type { DepositWalletCall };
export declare function relayerCredsMissing(): boolean;
export declare function relayerCredsMissingMessage(): string;
/**
 * RelayClient bound to the REAL account address (the deposit-wallet owner), with
 * builder-HMAC auth from bootstrapped Builder API creds. Async because the first
 * call may create the builder key. The relayer is not geoblocked → direct.
 */
export declare function getRelayClient(): Promise<RelayClient>;
/** CREATE2-derived deposit wallet address for the local key (pre-deploy safe). */
export declare function deriveDepositWallet(): Promise<Hex>;
/**
 * Derive the deposit wallet address WITHOUT relayer API creds. Derivation is
 * pure CREATE2 math over the signer address plus a public-RPC factory read — no
 * authenticated relayer call — so it works before the user has creds, letting
 * them pre-fund the address. (Deploy/approve/trade still need creds.)
 */
export declare function deriveDepositWalletNoCreds(): Promise<Hex>;
export declare function isDepositWalletDeployed(address: string): Promise<boolean>;
/**
 * Deploy the deposit wallet (idempotence guarded by the caller via
 * isDepositWalletDeployed). Waits for on-chain confirmation; throws with the
 * relayer transaction id on failure/timeout so the user can re-run setup.
 */
export declare function deployDepositWallet(): Promise<{
    transactionHash?: string;
}>;
/**
 * Execute a signed WALLET batch from the deposit wallet (approvals, redeem…).
 * The SDK fetches the nonce, EIP-712-signs the Batch with the local key, and
 * submits; we wait for confirmation.
 */
export declare function sendWalletBatch(calls: DepositWalletCall[], depositWallet: string, description: string): Promise<{
    transactionHash?: string;
}>;
