import { Field, Provable } from 'o1js';
import { G1Affine } from '../../ec/index.js';
export declare function createZkp15(inputCount: number): {
    zkp15: {
        name: string;
        maxProofsVerified(): Promise<0 | 1 | 2>;
        compile: (options?: {
            cache?: import("o1js").Cache;
            forceRecompile?: boolean;
            proofsEnabled?: boolean;
            withRuntimeTables?: boolean;
            numChunks?: number;
            lazyMode?: boolean;
        }) => Promise<{
            verificationKey: {
                data: string;
                hash: Field;
            };
        }>;
        verify: (proof: import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>) => Promise<boolean>;
        digest: () => Promise<string>;
        analyzeMethods: () => Promise<{
            compute: import("node_modules/o1js/dist/node/lib/provable/core/provable-context.js").ConstraintSystemSummary & {
                proofs: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofClass[];
            };
        }>;
        analyzeSingleMethod<K extends "compute">(methodName: K): Promise<import("node_modules/o1js/dist/node/lib/provable/core/provable-context.js").ConstraintSystemSummary & {
            proofs: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofClass[];
        }>;
        publicInputType: typeof import("node_modules/o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/field.js").Field) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field);
        publicOutputType: typeof import("node_modules/o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/field.js").Field) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field);
        privateInputTypes: {
            compute: [typeof G1Affine, typeof G1Affine, import("node_modules/o1js/dist/node/bindings/lib/generic.js").GenericProvableExtendedPure<import("o1js").CanonicalForeignField[], bigint[], string[], import("node_modules/o1js/dist/node/lib/provable/field.js").Field>];
        };
        auxiliaryOutputTypes: {
            compute: undefined;
        };
        rawMethods: {
            compute: (publicInput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field, args_0: G1Affine, args_1: G1Affine, args_2: import("o1js").CanonicalForeignField[]) => Promise<{
                publicOutput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            }>;
        };
        Proof: {
            new ({ proof, publicInput, publicOutput, maxProofsVerified, }: {
                proof: import("node_modules/o1js/dist/node/bindings.js").Pickles.Proof;
                publicInput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
                publicOutput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
                maxProofsVerified: 0 | 1 | 2;
            }): import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
            fromJSON<S extends import("node_modules/o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>;
            dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 1 | 2, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>;
            get provable(): {
                toFields: (value: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
                toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[];
                fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>;
                sizeInFields(): number;
                check: (value: import("o1js").Proof<any, any>) => void;
                toValue: (x: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>;
                fromValue: (x: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any> | import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>;
                toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined;
            };
            publicInputType: import("o1js").FlexibleProvable<any>;
            publicOutputType: import("o1js").FlexibleProvable<any>;
            tag: () => {
                name: string;
            };
            publicFields(value: import("o1js").ProofBase): {
                input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
                output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
            };
            _proofFromBase64(proofString: import("node_modules/o1js/dist/node/bindings.js").Base64ProofString, maxProofsVerified: 0 | 1 | 2): unknown;
            _proofToBase64(proof: import("node_modules/o1js/dist/node/bindings.js").Pickles.Proof, maxProofsVerified: 0 | 1 | 2): string;
        };
        proofsEnabled: boolean;
        setProofsEnabled(proofsEnabled: boolean): void;
    } & {
        compute: (publicInput: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field, args_0: G1Affine | {
            x: bigint | import("o1js").AlmostForeignField;
            y: bigint | import("o1js").AlmostForeignField;
        }, args_1: G1Affine | {
            x: bigint | import("o1js").AlmostForeignField;
            y: bigint | import("o1js").AlmostForeignField;
        }, args_2: import("o1js").CanonicalForeignField[] | bigint[]) => Promise<{
            proof: import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
            auxiliaryOutput: undefined;
        }>;
    };
    ZKP15Proof: {
        new ({ proof, publicInput, publicOutput, maxProofsVerified, }: {
            proof: unknown;
            publicInput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            publicOutput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            maxProofsVerified: 0 | 2 | 1;
        }): import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
        fromJSON<S extends import("node_modules/o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>;
        dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>;
        readonly provable: {
            toFields: (value: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
            toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[];
            fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>;
            sizeInFields(): number;
            check: (value: import("o1js").Proof<any, any>) => void;
            toValue: (x: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>;
            fromValue: (x: import("o1js").Proof<any, any> | import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>) => import("o1js").Proof<any, any>;
            toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined;
        };
        publicInputType: import("o1js").FlexibleProvable<any>;
        publicOutputType: import("o1js").FlexibleProvable<any>;
        tag: () => {
            name: string;
        };
        publicFields(value: import("o1js").ProofBase<any, any>): {
            input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
            output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
        };
        _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown;
        _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string;
    } & {
        provable: Provable<import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>, import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<bigint, bigint>>;
    };
};
declare const zkp15: {
    name: string;
    maxProofsVerified(): Promise<0 | 1 | 2>;
    compile: (options?: {
        cache?: import("o1js").Cache;
        forceRecompile?: boolean;
        proofsEnabled?: boolean;
        withRuntimeTables?: boolean;
        numChunks?: number;
        lazyMode?: boolean;
    }) => Promise<{
        verificationKey: {
            data: string;
            hash: Field;
        };
    }>;
    verify: (proof: import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>) => Promise<boolean>;
    digest: () => Promise<string>;
    analyzeMethods: () => Promise<{
        compute: import("node_modules/o1js/dist/node/lib/provable/core/provable-context.js").ConstraintSystemSummary & {
            proofs: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofClass[];
        };
    }>;
    analyzeSingleMethod<K extends "compute">(methodName: K): Promise<import("node_modules/o1js/dist/node/lib/provable/core/provable-context.js").ConstraintSystemSummary & {
        proofs: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofClass[];
    }>;
    publicInputType: typeof import("node_modules/o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/field.js").Field) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field);
    publicOutputType: typeof import("node_modules/o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/field.js").Field) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field);
    privateInputTypes: {
        compute: [typeof G1Affine, typeof G1Affine, import("node_modules/o1js/dist/node/bindings/lib/generic.js").GenericProvableExtendedPure<import("o1js").CanonicalForeignField[], bigint[], string[], import("node_modules/o1js/dist/node/lib/provable/field.js").Field>];
    };
    auxiliaryOutputTypes: {
        compute: undefined;
    };
    rawMethods: {
        compute: (publicInput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field, args_0: G1Affine, args_1: G1Affine, args_2: import("o1js").CanonicalForeignField[]) => Promise<{
            publicOutput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        }>;
    };
    Proof: {
        new ({ proof, publicInput, publicOutput, maxProofsVerified, }: {
            proof: import("node_modules/o1js/dist/node/bindings.js").Pickles.Proof;
            publicInput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            publicOutput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
            maxProofsVerified: 0 | 1 | 2;
        }): import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
        fromJSON<S extends import("node_modules/o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>;
        dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 1 | 2, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>;
        get provable(): {
            toFields: (value: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
            toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[];
            fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>;
            sizeInFields(): number;
            check: (value: import("o1js").Proof<any, any>) => void;
            toValue: (x: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>;
            fromValue: (x: import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any> | import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>;
            toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined;
        };
        publicInputType: import("o1js").FlexibleProvable<any>;
        publicOutputType: import("o1js").FlexibleProvable<any>;
        tag: () => {
            name: string;
        };
        publicFields(value: import("o1js").ProofBase): {
            input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
            output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
        };
        _proofFromBase64(proofString: import("node_modules/o1js/dist/node/bindings.js").Base64ProofString, maxProofsVerified: 0 | 1 | 2): unknown;
        _proofToBase64(proof: import("node_modules/o1js/dist/node/bindings.js").Pickles.Proof, maxProofsVerified: 0 | 1 | 2): string;
    };
    proofsEnabled: boolean;
    setProofsEnabled(proofsEnabled: boolean): void;
} & {
    compute: (publicInput: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/field.js").Field, args_0: G1Affine | {
        x: bigint | import("o1js").AlmostForeignField;
        y: bigint | import("o1js").AlmostForeignField;
    }, args_1: G1Affine | {
        x: bigint | import("o1js").AlmostForeignField;
        y: bigint | import("o1js").AlmostForeignField;
    }, args_2: import("o1js").CanonicalForeignField[] | bigint[]) => Promise<{
        proof: import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
        auxiliaryOutput: undefined;
    }>;
}, ZKP15Proof: {
    new ({ proof, publicInput, publicOutput, maxProofsVerified, }: {
        proof: unknown;
        publicInput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        publicOutput: import("node_modules/o1js/dist/node/lib/provable/field.js").Field;
        maxProofsVerified: 0 | 2 | 1;
    }): import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
    fromJSON<S extends import("node_modules/o1js/dist/node/lib/util/types.js").Subclass<typeof import("o1js").Proof>>(this: S, { maxProofsVerified, proof: proofString, publicInput: publicInputJson, publicOutput: publicOutputJson, }: import("o1js").JsonProof): Promise<import("o1js").Proof<import("o1js").InferProvable<S["publicInputType"]>, import("o1js").InferProvable<S["publicOutputType"]>>>;
    dummy<Input, OutPut>(publicInput: Input, publicOutput: OutPut, maxProofsVerified: 0 | 2 | 1, domainLog2?: number): Promise<import("o1js").Proof<Input, OutPut>>;
    readonly provable: {
        toFields: (value: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
        toAuxiliary: (value?: import("o1js").Proof<any, any> | undefined) => any[];
        fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[], aux: any[]) => import("o1js").Proof<any, any>;
        sizeInFields(): number;
        check: (value: import("o1js").Proof<any, any>) => void;
        toValue: (x: import("o1js").Proof<any, any>) => import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>;
        fromValue: (x: import("o1js").Proof<any, any> | import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<any, any>) => import("o1js").Proof<any, any>;
        toCanonical?: ((x: import("o1js").Proof<any, any>) => import("o1js").Proof<any, any>) | undefined;
    };
    publicInputType: import("o1js").FlexibleProvable<any>;
    publicOutputType: import("o1js").FlexibleProvable<any>;
    tag: () => {
        name: string;
    };
    publicFields(value: import("o1js").ProofBase<any, any>): {
        input: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
        output: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[];
    };
    _proofFromBase64(proofString: string, maxProofsVerified: 0 | 2 | 1): unknown;
    _proofToBase64(proof: unknown, maxProofsVerified: 0 | 2 | 1): string;
} & {
    provable: Provable<import("o1js").Proof<import("node_modules/o1js/dist/node/lib/provable/field.js").Field, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>, import("node_modules/o1js/dist/node/lib/proof-system/proof.js").ProofValue<bigint, bigint>>;
};
export { ZKP15Proof, zkp15 };
