import { Fr } from '@aztec/circuits.js';
import { type ConfigMappingsType } from '@aztec/foundation/config';
import { z } from 'zod';
import { type TxHash } from '../tx/tx_hash.js';
import { type EpochProver } from './epoch-prover.js';
import { type ProvingJobConsumer } from './prover-broker.js';
export type ActualProverConfig = {
    /** Whether to construct real proofs */
    realProofs: boolean;
    /** Artificial delay to introduce to all operations to the test prover. */
    proverTestDelayMs: number;
};
/**
 * The prover configuration.
 */
export type ProverConfig = ActualProverConfig & {
    /** The URL to the Aztec node to take proving jobs from */
    nodeUrl?: string;
    /** Identifier of the prover */
    proverId: Fr;
    proverAgentCount: number;
};
export declare const ProverConfigSchema: z.ZodObject<{
    nodeUrl: z.ZodOptional<z.ZodString>;
    realProofs: z.ZodBoolean;
    proverId: z.ZodType<Fr, any, string>;
    proverTestDelayMs: z.ZodNumber;
    proverAgentCount: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    proverAgentCount: number;
    realProofs: boolean;
    proverTestDelayMs: number;
    proverId: Fr;
    nodeUrl?: string | undefined;
}, {
    proverAgentCount: number;
    realProofs: boolean;
    proverTestDelayMs: number;
    proverId: string;
    nodeUrl?: string | undefined;
}>;
export declare const proverConfigMappings: ConfigMappingsType<ProverConfig>;
/**
 * The interface to the prover client.
 * Provides the ability to generate proofs and build rollups.
 */
export interface EpochProverManager {
    createEpochProver(): EpochProver;
    start(): Promise<void>;
    stop(): Promise<void>;
    getProvingJobSource(): ProvingJobConsumer;
    updateProverConfig(config: Partial<ProverConfig>): Promise<void>;
}
export declare class BlockProofError extends Error {
    #private;
    readonly txHashes: TxHash[];
    name: string;
    constructor(message: string, txHashes: TxHash[]);
    static isBlockProofError(err: any): err is BlockProofError;
}
//# sourceMappingURL=prover-client.d.ts.map