import { CurveType, Library, Plonky2HashFunction, Risc0Version, TeeVariant, UltrahonkVersion, UltrahonkVariant } from '../enums.js';
import { NetworkConfig, ProofProcessor, RuntimeSpec } from '../types.js';
import { RegistryTypes } from '@polkadot/types/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",
    tee = "tee"
}
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 | TeeConfig;
}
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 {
    version?: UltrahonkVersion;
    variant?: UltrahonkVariant;
}
export interface TeeConfig {
    variant?: TeeVariant;
}
export type AllProofConfigs = Groth16Config | Plonky2Config | Risc0Config | UltraplonkConfig | UltrahonkConfig | TeeConfig | undefined;
export type ZkvTypes = RegistryTypes;
export declare const legacyZkvTypes: ZkvTypes;
export declare const v1_6ZkvTypes: ZkvTypes;
export declare const v1_6_1ZkvTypes: ZkvTypes;
export declare const zkvTypes: RegistryTypes;
export declare function getZkvTypes(runtimeSpec?: RuntimeSpec): ZkvTypes;
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;
        };
        tee: {
            description: string;
            params: {
                name: string;
                type: string;
            }[];
            type: string;
        };
    };
};
//# sourceMappingURL=index.d.ts.map