import { PublicKey, Bool, Unconstrained, Bytes, Field } from 'o1js';
export { ZkPass, type ZkPassResponseItem };
/**
 * Utilities to help process zkpass responses.
 */
declare const ZkPass: {
    importCredentialPartial: typeof importCredentialPartial;
    verifyPublicInput: typeof verifyPublicInput;
    encodeParameters: typeof encodeParameters;
    genPublicFieldHash: typeof genPublicFieldHash;
    CredentialPartial(): Promise<Omit<{
        spec: import("../credential.ts").CredentialSpec<import("../credential-imported.ts").ImportedWitness<{
            schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorSignature: {
                r: [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/provable/field.js").Field];
                s: [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/provable/field.js").Field];
            };
            allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        }>, {
            nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }>;
        program: {
            publicInputType: import("o1js").Provable<{
                schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                allocatorSignature: {
                    r: [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/provable/field.js").Field];
                    s: [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/provable/field.js").Field];
                };
                allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            }, {
                schema: {
                    bytes: {
                        value: bigint;
                    }[];
                };
                taskId: {
                    bytes: {
                        value: bigint;
                    }[];
                };
                validatorAddress: {
                    bytes: {
                        value: bigint;
                    }[];
                };
                allocatorAddress: {
                    bytes: {
                        value: bigint;
                    }[];
                };
                allocatorSignature: {
                    r: bigint;
                    s: bigint;
                };
                allocatorParityBit: boolean;
            }>;
            publicOutputType: import("../o1js-missing.ts").ProvableType<import("../credential.ts").Credential<{
                nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            }>>;
            analyzeMethods(): Promise<Record<string, any>>;
            maxProofsVerified(): Promise<0 | 1 | 2>;
            compile: (options?: {
                cache?: import("o1js").Cache;
                forceRecompile?: boolean;
                proofsEnabled?: boolean;
            }) => Promise<{
                verificationKey: import("o1js").VerificationKey;
            }>;
            run(...inputs: any): Promise<{
                proof: import("o1js").Proof<{
                    schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                    taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                    validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                    allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                    allocatorSignature: {
                        r: [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/provable/field.js").Field];
                        s: [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/provable/field.js").Field];
                    };
                    allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
                }, import("../credential.ts").Credential<{
                    nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                    publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                }>>;
                auxiliaryOutput: undefined;
            }>;
        };
        isCompiled: boolean;
        verificationKey: import("o1js").VerificationKey | undefined;
        create(...inputs: any): Promise<import("../credential-imported.ts").Imported<{
            nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }, {
            schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorSignature: {
                r: [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/provable/field.js").Field];
                s: [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/provable/field.js").Field];
            };
            allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        }>>;
        fromProof(proof: import("o1js").Proof<{
            schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorSignature: {
                r: [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/provable/field.js").Field];
                s: [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/provable/field.js").Field];
            };
            allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        }, import("../credential.ts").Credential<{
            nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }>>, vk: import("o1js").VerificationKey): Promise<import("../credential-imported.ts").Imported<{
            nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }, {
            schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorSignature: {
                r: [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/provable/field.js").Field];
                s: [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/provable/field.js").Field];
            };
            allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        }>>;
        compile(options?: {
            cache?: import("o1js").Cache;
            forceRecompile?: boolean;
            proofsEnabled?: boolean;
        } | undefined): Promise<import("o1js").VerificationKey>;
        dummy({ owner, data, }: import("../credential.ts").Credential<{
            nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        } | {
            nullifier: {
                bytes: {
                    value: bigint;
                }[];
            };
            publicFieldsHash: {
                bytes: {
                    value: bigint;
                }[];
            };
        }>): Promise<import("../credential-imported.ts").Imported<{
            nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }, {
            schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorSignature: {
                r: [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/provable/field.js").Field];
                s: [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/provable/field.js").Field];
            };
            allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        }>>;
    }, "create"> & {
        create(inputs: {
            publicInput: {
                schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
                taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
                validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
                allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
                allocatorSignature: {
                    r: bigint | [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/provable/field.js").Field] | import("node_modules/o1js/dist/node/lib/provable/gadgets/foreign-field.js").Field3;
                    s: bigint | [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/provable/field.js").Field] | import("node_modules/o1js/dist/node/lib/provable/gadgets/foreign-field.js").Field3;
                };
                allocatorParityBit: boolean | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
            };
            privateInput: {
                uHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
                publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
                validatorSignature: import("o1js").EcdsaSignature | {
                    r: bigint;
                    s: bigint;
                };
                validatorParityBit: boolean | Unconstrained<boolean>;
            };
            owner: PublicKey;
        }): Promise<import("../credential-imported.ts").Imported<{
            nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }, {
            schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            allocatorSignature: {
                r: [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/provable/field.js").Field];
                s: [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/provable/field.js").Field];
            };
            allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
        }>>;
    }>;
    compileDependenciesPartial({ proofsEnabled }?: {
        proofsEnabled?: boolean | undefined;
    }): Promise<void>;
    CredentialFull(): Promise<Omit<{
        spec: import("../credential.ts").CredentialSpec<import("../credential-imported.ts").ImportedWitness<{
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }>, {
            allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
            validatorMessage: import("../dynamic.ts").DynamicBytesBase;
        }>;
        program: {
            publicInputType: import("o1js").Provable<{
                allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
            }, {
                allocatorAddress: {
                    bytes: {
                        value: bigint;
                    }[];
                };
            }>;
            publicOutputType: import("../o1js-missing.ts").ProvableType<import("../credential.ts").Credential<{
                allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
                validatorMessage: import("../dynamic.ts").DynamicBytesBase;
            }>>;
            analyzeMethods(): Promise<Record<string, any>>;
            maxProofsVerified(): Promise<0 | 1 | 2>;
            compile: (options?: {
                cache?: import("o1js").Cache;
                forceRecompile?: boolean;
                proofsEnabled?: boolean;
            }) => Promise<{
                verificationKey: import("o1js").VerificationKey;
            }>;
            run(...inputs: any): Promise<{
                proof: import("o1js").Proof<{
                    allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
                }, import("../credential.ts").Credential<{
                    allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
                    validatorMessage: import("../dynamic.ts").DynamicBytesBase;
                }>>;
                auxiliaryOutput: undefined;
            }>;
        };
        isCompiled: boolean;
        verificationKey: import("o1js").VerificationKey | undefined;
        create(...inputs: any): Promise<import("../credential-imported.ts").Imported<{
            allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
            validatorMessage: import("../dynamic.ts").DynamicBytesBase;
        }, {
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }>>;
        fromProof(proof: import("o1js").Proof<{
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }, import("../credential.ts").Credential<{
            allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
            validatorMessage: import("../dynamic.ts").DynamicBytesBase;
        }>>, vk: import("o1js").VerificationKey): Promise<import("../credential-imported.ts").Imported<{
            allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
            validatorMessage: import("../dynamic.ts").DynamicBytesBase;
        }, {
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }>>;
        compile(options?: {
            cache?: import("o1js").Cache;
            forceRecompile?: boolean;
            proofsEnabled?: boolean;
        } | undefined): Promise<import("o1js").VerificationKey>;
        dummy({ owner, data, }: import("../credential.ts").Credential<{
            allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
            validatorMessage: import("../dynamic.ts").DynamicBytesBase;
        } | {
            allocatorMessage: Uint8Array<ArrayBufferLike>;
            validatorMessage: Uint8Array<ArrayBufferLike>;
        }>): Promise<import("../credential-imported.ts").Imported<{
            allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
            validatorMessage: import("../dynamic.ts").DynamicBytesBase;
        }, {
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }>>;
    }, "create"> & {
        create(inputs: {
            publicInput: {
                allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
            };
            privateInput: {
                allocatorMessage: Uint8Array<ArrayBufferLike> | import("../dynamic.ts").DynamicBytesBase;
                allocatorSignature: import("o1js").EcdsaSignature | {
                    r: bigint;
                    s: bigint;
                };
                allocatorParityBit: boolean | Unconstrained<boolean>;
                validatorMessage: Uint8Array<ArrayBufferLike> | import("../dynamic.ts").DynamicBytesBase;
                validatorSignature: import("o1js").EcdsaSignature | {
                    r: bigint;
                    s: bigint;
                };
                validatorParityBit: boolean | Unconstrained<boolean>;
                validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
                    bytes: {
                        value: bigint;
                    }[];
                };
            };
            owner: PublicKey;
        }): Promise<import("../credential-imported.ts").Imported<{
            allocatorMessage: import("../dynamic.ts").DynamicBytesBase;
            validatorMessage: import("../dynamic.ts").DynamicBytesBase;
        }, {
            allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        }>>;
    }>;
    compileDependenciesFull({ proofsEnabled }?: {
        proofsEnabled?: boolean | undefined;
    }): Promise<void>;
};
type Type = 'bytes32' | 'address';
type PublicField = string | ({
    [key: string]: PublicField;
} & {
    str?: string;
});
type ZkPassResponseItem = {
    taskId: string;
    publicFields: PublicField[];
    allocatorAddress: string;
    publicFieldsHash: string;
    allocatorSignature: string;
    uHash: string;
    validatorAddress: string;
    validatorSignature: string;
};
declare function importCredentialPartial(owner: PublicKey, schema: string, response: ZkPassResponseItem, log?: (msg: string) => void, { proofsEnabled }?: {
    proofsEnabled?: boolean | undefined;
}): Promise<import("../credential-imported.ts").Imported<{
    nullifier: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    publicFieldsHash: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
}, {
    schema: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    taskId: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    validatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    allocatorAddress: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    allocatorSignature: {
        r: [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/provable/field.js").Field];
        s: [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/provable/field.js").Field];
    };
    allocatorParityBit: import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool;
}>>;
type Field3 = [Field, Field, Field];
/**
 * Verify the public input of a partial zkpass credential.
 *
 * Returns the allocator address and schema id for further verification against
 * expected values.
 *
 * This is a verification step that can be done in the clear, and is
 * outsourced from the proof to the verifier.
 */
declare function verifyPublicInput(publicInput: {
    schema: Bytes;
    taskId: Bytes;
    validatorAddress: Bytes;
    allocatorAddress: Bytes;
    allocatorSignature: {
        r: Field3;
        s: Field3;
    };
    allocatorParityBit: Bool;
}): {
    allocatorAddress: string;
    schema: string;
};
declare function encodeParameters(types: Type[], values: Uint8Array[]): Uint8Array<ArrayBufferLike>;
declare function genPublicFieldHash(publicFields: PublicField[]): import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
