import type { LocalAccount } from '../accounts/types.js'; import { type Transport } from '../clients/transports/createTransport.js'; import { type HttpTransport, type HttpTransportConfig } from '../clients/transports/http.js'; import * as Multisig from './Multisig.js'; import type { Store } from './Store.js'; export type HttpConfig = Omit & { /** Store for reading Zone authorization tokens. Defaults to sessionStorage (web) or memory (server). */ store?: Store | undefined; }; /** * Creates an HTTP transport with support for Zone authentication tokens. * * Reads the authorization token from the store and injects the * `X-Authorization-Token` header on every request. * * @example * ```ts * import { createPublicClient } from 'viem' * import { http, Zone } from 'viem/tempo' * * const client = createPublicClient({ * chain: Zone.a, * transport: http(), * }) * ``` */ export declare function http(url?: string | undefined, config?: HttpConfig): HttpTransport; type RelayProxyParameters = { /** Policy for how the relay should handle sponsored transactions. Defaults to `'sign-only'`. */ policy?: 'sign-only' | 'sign-and-broadcast' | undefined; }; export type FeePayer = Transport; export type Relay = Transport; /** * Wraps a transport with native multisig request handling. * * @example * ```ts * import { http, Store, withMultisig } from 'viem/tempo' * * const transport = withMultisig(http(), { * store: Store.memory(), * }) * ``` * * @param transport - Transport to wrap. * @param parameters - Multisig request handler parameters. * @returns The wrapped transport. * @experimental */ export declare function withMultisig(transport: transport, parameters: withMultisig.Parameters): withMultisig.ReturnValue; export declare namespace withMultisig { /** Multisig transport parameters. */ type Parameters = Multisig.handleRequest.Parameters; /** Multisig transport return type. */ type ReturnValue = transport extends Transport ? Transport : never; } /** * Creates a relay transport that routes requests between * the default transport or the relay transport. * * All `eth_fillTransaction` requests are sent to the relay with the request's * `feePayer` value preserved so the relay can decide whether to sponsor the transaction. * Multisig approvals, configs, operations, and operation-aware transaction * lookups are also sent to the relay so it can coordinate approvals in its store. * * The policy parameter controls how the relay handles sponsored transactions: * - `'sign-only'`: Relay co-signs the transaction and returns it to the client transport, which then broadcasts it via the default transport * - `'sign-and-broadcast'`: Relay co-signs and broadcasts the transaction directly * * @param defaultTransport - The default transport to use. * @param relayTransport - The relay transport to use. * @param parameters - Configuration parameters. * @returns A relay transport. */ export declare function withRelay(defaultTransport: Transport, relayTransport: Transport, parameters?: withRelay.Parameters): withRelay.ReturnValue; export declare namespace withRelay { const type = "relay"; type Parameters = RelayProxyParameters; type ReturnValue = Relay; } /** @deprecated Use `withRelay` instead. */ export declare function withFeePayer(defaultTransport: Transport, relayTransport: Transport, parameters?: withFeePayer.Parameters): withFeePayer.ReturnValue; export declare namespace withFeePayer { const type = "feePayer"; type Parameters = { /** Policy for how the fee payer should handle transactions. Defaults to `'sign-only'`. */ policy?: 'sign-only' | 'sign-and-broadcast' | undefined; }; type ReturnValue = FeePayer; } /** * Creates a transport that instruments a compatibility layer for * `wallet_` RPC actions (`sendCalls`, `getCallsStatus`, etc). * * @param transport - Transport to wrap. * @returns Transport. */ export declare function walletNamespaceCompat(transport: Transport, options: walletNamespaceCompat.Parameters): Transport; export declare namespace walletNamespaceCompat { type Parameters = { account: LocalAccount; }; } export {}; //# sourceMappingURL=Transport.d.ts.map