import { CurveType, Library, Plonky2HashFunction, Risc0Version, UltrahonkVariant } from '../enums';
import { NetworkConfig, ProofProcessor } from '../types';
export declare const VOLTA_CHAIN_SS58_PREFIX = 251;
export declare const ZKVERIFY_CHAIN_SS58_PREFIX = 8741;
export declare enum SupportedNetwork {
    zkVerify = "zkVerify",
    Volta = "Volta",
    Custom = "Custom"
}
export declare const SupportedNetworkConfig: Record<SupportedNetwork, NetworkConfig>;
export declare enum ProofType {
    ezkl = "ezkl",
    fflonk = "fflonk",
    groth16 = "groth16",
    plonky2 = "plonky2",
    risc0 = "risc0",
    sp1 = "sp1",
    ultrahonk = "ultrahonk",
    ultraplonk = "ultraplonk"
}
export interface ProofConfig {
    pallet: string;
    processor: ProofProcessor;
}
export declare const proofConfigurations: Record<ProofType, ProofConfig>;
export interface ProofOptions {
    proofType: ProofType;
    config?: Groth16Config | Plonky2Config | Risc0Config | UltraplonkConfig | UltrahonkConfig;
}
export interface Groth16Config {
    library: Library;
    curve: CurveType;
}
export interface Plonky2Config {
    hashFunction: Plonky2HashFunction;
}
export interface Risc0Config {
    version: Risc0Version;
}
export interface UltraplonkConfig {
    numberOfPublicInputs: number;
}
export interface UltrahonkConfig {
    variant: UltrahonkVariant;
}
export type AllProofConfigs = Groth16Config | Plonky2Config | Risc0Config | UltraplonkConfig | UltrahonkConfig | undefined;
export declare const zkvTypes: {
    MerkleProof: {
        root: string;
        proof: string;
        number_of_leaves: string;
        leaf_index: string;
        leaf: string;
    };
    Curve: {
        _enum: string[];
    };
    Groth16Vk: {
        curve: string;
        alphaG1: string;
        betaG2: string;
        gammaG2: string;
        deltaG2: string;
        gammaAbcG1: string;
    };
    Plonky2Config: {
        _enum: string[];
    };
    Plonky2Vk: {
        config: string;
        bytes: string;
    };
    EzklVk: {
        vkBytes: string;
    };
};
export declare const zkvRpc: {
    aggregate: {
        statementPath: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
    };
    vk_hash: {
        groth16: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
        plonky2: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
        risc0: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
        ultraplonk: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
        fflonk: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
        sp1: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
        ultrahonk: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
        ezkl: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
    };
};
//# sourceMappingURL=index.d.ts.map