import { type LoggerBindings } from '@aztec/foundation/log'; import type { PrivateKernelProver } from '@aztec/stdlib/interfaces/client'; import { type PrivateKernelExecutionProofOutput, type PrivateKernelTailCircuitPublicInputs } from '@aztec/stdlib/kernel'; import { type PrivateExecutionResult, TxRequest } from '@aztec/stdlib/tx'; import type { PrivateKernelOracle } from './private_kernel_oracle.js'; export interface PrivateKernelExecutionProverConfig { simulate: boolean; skipFeeEnforcement: boolean; profileMode: 'gates' | 'execution-steps' | 'full' | 'none'; } /** * The PrivateKernelExecutionProver class is responsible for taking a transaction request and sequencing the * the execution of the private functions within, sequenced with private kernel "glue" to check protocol rules. * The result can be a chonk proof of the private transaction portion, or just a simulation that can e.g. * inform state tree updates. */ export declare class PrivateKernelExecutionProver { private oracle; private proofCreator; private fakeProofs; private log; constructor(oracle: PrivateKernelOracle, proofCreator: PrivateKernelProver, fakeProofs?: boolean, bindings?: LoggerBindings); /** * Generate a proof for a given transaction request and execution result. * The function iterates through the nested executions in the execution result, creates private call data, * and generates a proof using the provided ProofCreator instance. It also maintains an index of new notes * created during the execution and returns them as a part of the KernelProverOutput. * * @param txRequest - The authenticated transaction request object. * @param executionResult - The execution result object containing nested executions and preimages. * @param profile - Set true to profile the gate count for each circuit * @returns A Promise that resolves to a KernelProverOutput object containing proof, public inputs, and output notes. */ proveWithKernels(txRequest: TxRequest, executionResult: PrivateExecutionResult, { simulate, skipFeeEnforcement, profileMode }?: PrivateKernelExecutionProverConfig): Promise>; /** * Checks that the public inputs of the chonk proof match the public inputs of the tail circuit. * This can only mismatch if there is a circuit / noir / bb bug. * @param chonkProof - The chonk proof with public inputs. * @param tailPublicInputs - The public inputs resulting from witness generation of the tail circuit. */ private ensurePublicInputsMatch; private getVkData; private createPrivateCallData; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9rZXJuZWxfZXhlY3V0aW9uX3Byb3Zlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByaXZhdGVfa2VybmVsL3ByaXZhdGVfa2VybmVsX2V4ZWN1dGlvbl9wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTXZGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQVFMLEtBQUssaUNBQWlDLEVBS3RDLEtBQUssb0NBQW9DLEVBRTFDLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUVMLEtBQUssc0JBQXNCLEVBQzNCLFNBQVMsRUFHVixNQUFNLGtCQUFrQixDQUFDO0FBSTFCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFTdEUsTUFBTSxXQUFXLGtDQUFrQztJQUNqRCxRQUFRLEVBQUUsT0FBTyxDQUFDO0lBQ2xCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQztJQUM1QixXQUFXLEVBQUUsT0FBTyxHQUFHLGlCQUFpQixHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDNUQ7QUFFRDs7Ozs7R0FLRztBQUNILHFCQUFhLDRCQUE0QjtJQUlyQyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxVQUFVO0lBTHBCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsWUFDVSxNQUFNLEVBQUUsbUJBQW1CLEVBQzNCLFlBQVksRUFBRSxtQkFBbUIsRUFDakMsVUFBVSxVQUFRLEVBQzFCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFHMUI7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0csZ0JBQWdCLENBQ3BCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGVBQWUsRUFBRSxzQkFBc0IsRUFDdkMsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLEdBQUUsa0NBSTlDLEdBQ0EsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FvUmxGO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsdUJBQXVCO1lBb0JqQixTQUFTO1lBU1QscUJBQXFCO0NBK0JwQyJ9