import { ComputationalStage, ComputationPlan } from '../../plan.js';
import { PlatformFeatures } from '../platform/index.js';
import { Risc0Proof, Risc0RawVk } from '../../../api/sp1/types.js';
export type Groth16Input = {
    risc0_proof: Risc0Proof;
    raw_vk: Risc0RawVk;
};
export interface Groth16ProofData {
    maxProofsVerified: 0 | 1 | 2;
    proof: string;
    publicInput: string[];
    publicOutput: string[];
}
export interface Groth16VkData {
    data: string;
    hash: string;
}
export interface Groth16Output {
    vkData: Groth16VkData;
    proofData: Groth16ProofData;
}
interface State extends PlatformFeatures, Groth16Output {
    workingDirName: string;
    workingDir: string;
    cacheDir: string;
    input: Groth16Input;
    witnessPath: string;
    proofPath: string;
    vkPath: string;
}
export declare class Groth16ComputationalPlan implements ComputationPlan<State, Groth16Output, Groth16Input> {
    readonly __inputType: Groth16Input;
    name: string;
    init(state: State, input: Groth16Input): Promise<void>;
    stages: ComputationalStage<State>[];
    then(state: State): Promise<Groth16Output>;
    finally(state: State): Promise<void>;
}
export {};
