import { WasmProverOutput, WasmVerifierSystem } from '../pkg/mina_zkml.js';
export type RunArgs = {
    variables: {
        [key: string]: number;
    };
};
export type VarVisibility = {
    input: "Public" | "Private";
    output: "Public" | "Private";
};
export declare class ZKML {
    private proofSystem;
    private static initialized;
    private static initPromise;
    private constructor();
    private static initialize;
    private static loadModelBytes;
    static create(modelPath: string, runArgs?: RunArgs, visibility?: VarVisibility): Promise<ZKML>;
    prove(inputs: number[][]): Promise<WasmProverOutput>;
    exportVerifier(): Promise<WasmVerifierSystem>;
    serializeVerifier(): Promise<string>;
    static deserializeVerifier(serialized: string): Promise<WasmVerifierSystem>;
    static verify(proof: string, verifier: WasmVerifierSystem, publicInputs?: number[][], publicOutputs?: number[][]): Promise<boolean>;
}
