import { type Effect, Context } from 'effect'; import type * as ledger from '@midnight-ntwrk/ledger-v8'; import { type ClientError, type ServerError } from '@midnightntwrk/wallet-sdk-utilities/networking'; import type { KeyMaterialProvider } from '@midnight-ntwrk/zkir-v2'; declare const ProverClient_base: Context.TagClass; /** A client that provides proof services for unproven transactions. */ export declare class ProverClient extends ProverClient_base { } export declare namespace ProverClient { /** Provides server-related configuration for {@link ProverClient} implementations. */ interface ServerConfig { /** The base URL to the Proof Server. */ readonly url: URL | string; } /** Provides wasm-related configuration for {@link KeyMaterialProvider} implementations. */ interface WasmConfig { /** The Key Material Provider. */ readonly keyMaterialProvider: KeyMaterialProvider; } interface Service { /** * Proves an unproven transaction by submitting it to an associated Proof Server. * * @param transaction A serialized unproven transaction. * @returns An `Effect` that yields with a serialized transaction representing the proven version of `transaction`; * or fails with a client or server side error. */ proveTransaction(tx: ledger.Transaction, costModel?: ledger.CostModel): Effect.Effect, ClientError | ServerError>; asProvingProvider(): ledger.ProvingProvider; } } export {};