import { type NodeKeyPair } from '@forgezero/runtime/identity'; export interface SignedNodeHttpOptions { apiUrl: string; nodeKey: string; keys: NodeKeyPair; fetch?: (input: URL, init: RequestInit) => Promise; requestTimeoutMs?: number; } export declare class SignedNodeHttpError extends Error { readonly status: number; readonly code?: string | undefined; readonly detail?: unknown | undefined; constructor(status: number, message: string, code?: string | undefined, detail?: unknown | undefined); } /** * Validate the one origin every outbound Agent client shares. * * Hybrid request authentication and a sealed response protect the payload, but * they do not hide routing metadata. Accepting plain HTTP for a remote API * would still expose node identity, operation timing and ciphertext to an * on-path observer. Loopback HTTP remains available for local development and * for a supervised same-host API; production traffic must use HTTPS. */ export declare function signedNodeApiUrl(value: string): URL; /** One implementation of the hybrid-signed machine HTTP contract. */ export declare function postSignedNode(options: SignedNodeHttpOptions, path: string, body: object): Promise; /** Read-only reconciliation uses the same hybrid signatures and sealed response binding. */ export declare function getSignedNode(options: SignedNodeHttpOptions, path: string): Promise;