import type { L1ContractAddresses } from '@aztec/ethereum/l1-contract-addresses';
import type { ViemPublicClient } from '@aztec/ethereum/types';
import { createAztecNodeClient } from '@aztec/stdlib/interfaces/client';
import type { ChildProcess } from 'child_process';
import type { TestConfig } from './config.js';
/**
 * Returns a public viem client to the eth execution node.
 * Tries external IP first, falls back to port-forward.
 * If CREATE_ETH_DEVNET is false, uses the external RPC url from L1_RPC_URLS_JSON.
 *
 * @param env - Test environment config
 * @param forcePortForward - If true, skip external IP and use port-forward directly
 * @returns URL, client, and optional process (if port-forward was used). Caller must kill process when done.
 */
export declare function getPublicViemClient(env: TestConfig, forcePortForward?: boolean): Promise<{
    url: string;
    client: ViemPublicClient;
    process?: ChildProcess;
}>;
/**
 * Queries an Aztec node for the L1 deployment addresses.
 *
 * @param env - Test environment config
 * @param forcePortForward - If true, skip external IP and use port-forward directly
 */
export declare function getL1DeploymentAddresses(env: TestConfig, forcePortForward?: boolean): Promise<L1ContractAddresses>;
/**
 * Returns a client to the RPC node.
 * Tries external IP first, falls back to port-forward.
 *
 * @param env - Test environment config
 * @param forcePortForward - If true, skip external IP and use port-forward directly
 */
export declare function getNodeClient(env: TestConfig, forcePortForward?: boolean): Promise<{
    node: ReturnType<typeof createAztecNodeClient>;
    url: string;
    process?: ChildProcess;
}>;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NwYXJ0YW4vdXRpbHMvY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUs5Qzs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixtQkFBbUIsQ0FDdkMsR0FBRyxFQUFFLFVBQVUsRUFDZixnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sR0FDekIsT0FBTyxDQUFDO0lBQ1QsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztJQUN6QixPQUFPLENBQUMsRUFBRSxZQUFZLENBQUM7Q0FDeEIsQ0FBQyxDQW1CRDtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLHdCQUF3QixDQUM1QyxHQUFHLEVBQUUsVUFBVSxFQUNmLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxHQUN6QixPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FjOUI7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBc0IsYUFBYSxDQUNqQyxHQUFHLEVBQUUsVUFBVSxFQUNmLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxHQUN6QixPQUFPLENBQUM7SUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8scUJBQXFCLENBQUMsQ0FBQztJQUFDLEdBQUcsRUFBRSxNQUFNLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxZQUFZLENBQUE7Q0FBRSxDQUFDLENBYWxHIn0=