/**
 * Shared x402 POST helper.
 *
 * Posts JSON to a BlockRun gateway endpoint and transparently completes the
 * x402 payment handshake: the first POST may return 402 with payment
 * requirements, we sign with the local wallet (Base or Solana, per active
 * chain) and retry once with the signature header.
 *
 * Extracted from src/phone/client.ts so phone, onramp, and any future
 * gateway clients share one implementation instead of copy-pasting the
 * 402 dance. Endpoints that are free simply return 200 on the first POST,
 * in which case no signing happens.
 */
export interface PostResult {
    ok: boolean;
    status: number;
    body: Record<string, unknown>;
    raw: string;
}
/**
 * POST JSON to a gateway endpoint, completing the x402 handshake if the
 * endpoint demands payment. `resourceDescription` is surfaced to the user
 * in the wallet signature for free-text context.
 */
export declare function postWithPayment(endpoint: string, body: Record<string, unknown>, resourceDescription: string, timeoutMs?: number): Promise<PostResult>;
