import { ContractFactory, ContractTransactionResponse } from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../../../common";
import type { StateTransitionVerifierBaseGroth16, StateTransitionVerifierBaseGroth16Interface } from "../../../src/verifiers/StateTransitionVerifierBaseGroth16";
type StateTransitionVerifierBaseGroth16ConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class StateTransitionVerifierBaseGroth16__factory extends ContractFactory {
    constructor(...args: StateTransitionVerifierBaseGroth16ConstructorParams);
    getDeployTransaction(overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<ContractDeployTransaction>;
    deploy(overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<StateTransitionVerifierBaseGroth16 & {
        deploymentTransaction(): ContractTransactionResponse;
    }>;
    connect(runner: ContractRunner | null): StateTransitionVerifierBaseGroth16__factory;
    static readonly bytecode = "0x6080604052348015600f57600080fd5b50611adb8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063b1c3a00e14610046578063d148354c14610071578063e33974a814610086575b600080fd5b610059610054366004611850565b610099565b60405161006893929190611899565b60405180910390f35b61008461007f36600461190d565b610122565b005b610084610094366004611969565b6105c4565b6100a16117b4565b6100a96117d2565b60006100be86358760015b6020020135610b2c565b83526100dc6060870135604088013560a089013560808a0135610c21565b602085015260408401526100f660c08701358760076100b4565b606084015261010885358660016100b4565b825261011784358560016100b4565b905093509350939050565b61012a6117d2565b6040805160028082526060808301845292602083019080368337019050509050602081016040848101823750604051600080516020611a868339815191529061017f908735906020808a0135918691016119c9565b6040516020818303038152906040528051906020012060001c6101a29190611a22565b8252604080516000918782377f1c5e636ab199b196437fcad1654ce5a196a1d59a195fecf8b819d8a54cbe5d4260408201527f07d98d3ae028929c68203241a5a731672743e863e09a99962087887775566eba60608201527f25a28d65581a33d35e0ebc98bf5e683ae4a5068c485d89cae7f5d3074cfc98c060808201527e3d5ead19ed732ce622f65adf7eef64ba32f91337a60190665b88b49ae4793d60a082015260408660c08301377f1a6f87b7a35d7994f132fd716464bef29eaa151776e69fd79a6013a70c680dd56101008201527f2dd62bfd0b59232896c83a6e06c67caa4daff7a809c6761438f7d3176cfdc12c6101208201527f2218d54a19369218be0d47f5825a319debb60b343c6623dc4059734af0e37d9c6101408201527f1711042f565505f015c9062409251b910d79713a58e32fb93dec9a7c48bd7f556101608201526020816101808360085afa905116905080610317576040516351d49ff760e11b815260040160405180910390fd5b60008061034e86868a6002806020026040519081016040528092919082600260200280828437600092019190915250610f18915050565b915091506040516101008a82377f1a921844c1b0c9f2038d8fe36364d0eef82c3bd8591c895a7c789fafc00c92426101008201527f0a228ca9daf73089eb5a38ea00e8f764b6a04d0ec220cc507cf98416ecdb7a876101208201527f2e5d46de967b2c8f41c72b297db185b95999ed937b3acd6e2ed3c3f6ebcad5a76101408201527f2b2b2705d6ada3339f99af58806d5d896660a323ddbe365abb8acc3f477a41216101608201527f1267c7e73a62392799c065270d11f2b36863b1549a97483c6548ade85e54049e6101808201527f2ddb7282342319a7ebaebff6ef0bbe7bcf782bb8706cfde54ad5a77e7802e0cb6101a08201527f2a4ca7ec1ca0fecbc020a7df769171436d9213555ec2601da8238ee99e0dc3d16101c08201527f251b98882b9b4a43a56179ccda2744da9691182d9dc59a7a1858747a737192c66101e08201527f1cea811a9c83cc11f773ad30f470b5713539d2cf312d79bb17bf4613319f7bc06102008201527f165b7041d6a2d58a5db878182ca8959954300627607553a803f4e0bbfa89463b61022082015282610240820152816102608201527f0324ac2d60368ca9ffff186218706375aa9743d399844c1c6a2a20b9bf1bc3976102808201527f10a74dd9cc92fe6b496ac74129305dde3e89ac224b3b44dc7403a3f9546408ad6102a08201527f153cdfa35f77d08687673bd735c00f2955be166ad922e2ec277cfcd170a370916102c08201527f1ed2b4b47f62404d7f8c94f3d37231354113432d13a0f0f005dddf0ac8b5d4e86102e08201526020816103008360085afa9051169250826105b957604051631ff3747d60e21b815260040160405180910390fd5b505050505050505050565b6105cc6117d2565b6105d46117f0565b6105dc61180e565b6105ed8660005b602002013561125e565b602084015282526000806106008761125e565b6040805160028082526060808301845294965092945091906020830190803683370190505090506020810160408881018237508451602080870151604051600080516020611a868339815191529361065d939092918691016119c9565b6040516020818303038152906040528051906020012060001c6106809190611a22565b865284518452602085810151858201527f1c5e636ab199b196437fcad1654ce5a196a1d59a195fecf8b819d8a54cbe5d426040808701919091527f07d98d3ae028929c68203241a5a731672743e863e09a99962087887775566eba60608701527f25a28d65581a33d35e0ebc98bf5e683ae4a5068c485d89cae7f5d3074cfc98c060808701527e3d5ead19ed732ce622f65adf7eef64ba32f91337a60190665b88b49ae4793d60a087015260c0860185905260e086018490527f1a6f87b7a35d7994f132fd716464bef29eaa151776e69fd79a6013a70c680dd56101008701527f2dd62bfd0b59232896c83a6e06c67caa4daff7a809c6761438f7d3176cfdc12c6101208701527f2218d54a19369218be0d47f5825a319debb60b343c6623dc4059734af0e37d9c6101408701527f1711042f565505f015c9062409251b910d79713a58e32fb93dec9a7c48bd7f5561016087015251600091816101808860085afa905116905080610805576040516351d49ff760e11b815260040160405180910390fd5b50505050600080610822896000600481106105e3576105e36119b3565b9092509050600080808061083e60408e013560208f0135611304565b929650909450925090506000806108568f60036105e3565b915091506000806108688e8e8e610f18565b8b8d5260208d018b905260408d0189905260608d018a905260808d0187905260a08d0188905260c08d0186905260e08d018590527f1a921844c1b0c9f2038d8fe36364d0eef82c3bd8591c895a7c789fafc00c92426101008e01527f0a228ca9daf73089eb5a38ea00e8f764b6a04d0ec220cc507cf98416ecdb7a876101208e01527f2e5d46de967b2c8f41c72b297db185b95999ed937b3acd6e2ed3c3f6ebcad5a76101408e01527f2b2b2705d6ada3339f99af58806d5d896660a323ddbe365abb8acc3f477a41216101608e01527f1267c7e73a62392799c065270d11f2b36863b1549a97483c6548ade85e54049e6101808e01527f2ddb7282342319a7ebaebff6ef0bbe7bcf782bb8706cfde54ad5a77e7802e0cb6101a08e01527f2a4ca7ec1ca0fecbc020a7df769171436d9213555ec2601da8238ee99e0dc3d16101c08e01527f251b98882b9b4a43a56179ccda2744da9691182d9dc59a7a1858747a737192c66101e08e01527f1cea811a9c83cc11f773ad30f470b5713539d2cf312d79bb17bf4613319f7bc06102008e01527f165b7041d6a2d58a5db878182ca8959954300627607553a803f4e0bbfa89463b6102208e01526102408d018290526102608d018190527f0324ac2d60368ca9ffff186218706375aa9743d399844c1c6a2a20b9bf1bc3976102808e01527f10a74dd9cc92fe6b496ac74129305dde3e89ac224b3b44dc7403a3f9546408ad6102a08e01527f153cdfa35f77d08687673bd735c00f2955be166ad922e2ec277cfcd170a370916102c08e01527f1ed2b4b47f62404d7f8c94f3d37231354113432d13a0f0f005dddf0ac8b5d4e86102e08e015290925090506000610add6117d2565b6020816103008f60085afa9150811580610af957508051600114155b15610b1757604051631ff3747d60e21b815260040160405180910390fd5b50505050505050505050505050505050505050565b6000600080516020611a6683398151915283101580610b595750600080516020611a668339815191528210155b15610b7757604051631ff3747d60e21b815260040160405180910390fd5b82158015610b83575081155b15610b9057506000610c1b565b6000610bcf600080516020611a668339815191526003600080516020611a6683398151915287600080516020611a66833981519152898a0909086114ea565b9050808303610be4575050600182901b610c1b565b610bed8161154e565b8303610c00575050600182811b17610c1b565b604051631ff3747d60e21b815260040160405180910390fd5b505b92915050565b600080600080516020611a6683398151915286101580610c4f5750600080516020611a668339815191528510155b80610c685750600080516020611a668339815191528410155b80610c815750600080516020611a668339815191528310155b15610c9f57604051631ff3747d60e21b815260040160405180910390fd5b82848688171717600003610cb857506000905080610f0f565b60008080600080516020611a66833981519152610ce46003600080516020611a66833981519152611a44565b600080516020611a668339815191528a8c090990506000600080516020611a668339815191528a600080516020611a668339815191528c8d090990506000600080516020611a668339815191528a600080516020611a668339815191528c8d09099050600080516020611a6683398151915280600080516020611a668339815191528c860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5089450610ddd600080516020611a6683398151915280600080516020611a668339815191528e870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750861154e565b9350505050600080610e2e600080516020611a6683398151915280610e0457610e04611a0c565b600080516020611a66833981519152858609600080516020611a66833981519152878809086114ea565b9050610e7b600080516020611a668339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea4600080516020611a6683398151915284880809611567565b15915050610e8a8383836115b1565b90935091508683148015610e9d57508186145b15610ec75780610eae576000610eb1565b60025b60ff1660028a901b176000179450879350610f0b565b610ed08361154e565b87148015610ee55750610ee28261154e565b86145b15610c005780610ef6576000610ef9565b60025b60ff1660028a901b1760011794508793505b5050505b94509492505050565b6000806000600190506040516040810160007f28d2770b23a8307a30fc52c3f55204117de458f220ae928bc9199bf8d13ff4ec83527f14fa3f9fd0b0d0d239e121a1db64e749d24ab9ce70f41f3022d74a1c89ca85c16020840152865182526020870151602083015260408360808560065afa841693507f0416847a71d55eb4e925d521e64638084804afdc0d12cec531b1e3b36a54f24682527f16d5654dfef2af3ccec76550292107e375287b9ac918842b43ca50d08b4b41de602083015288359050806040830152600080516020611a8683398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f22802735f44626e8c2bfed5de04c6820ae8be41926245c46fefd95cb69d5278882527f2278503f4e92e194d337e44ebd5066f6e2dd2818853e63903d9e8609b3decb8e602083015260208901359050806040830152600080516020611a8683398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f127dfdab346c2ac5369b144bf6bcbe854b530617e5f0a95c2ca17f82bc61264882527f25965e1943aaa1df1c4b99efea91d907ca3d77e8b2ef86414d8da8099bd4699a602083015260408901359050806040830152600080516020611a8683398151915281108416935060408260608460075afa8416935060408360808560065afa841693507f2312187ec83fdf2f03589aa6cc3fc39be54f672c3bab4415b76e6a143c40a81182527f12f8d7f21cf62ec537fffa349f0306700354fc4795bc02808e3ca28779b999e5602083015260608901359050806040830152600080516020611a8683398151915281108416935060408260608460075afa8416935060408360808560065afa7f28a0a82250ae577b5b549ace3365a76ede50c4b59072a8f60807901b244c503383527f1559c5db8eced77b84a4ec25a1a1222e3ccacef78054690740f4c1de0ec8bf9e602084015288516040808501829052600080516020611a8683398151915290911091909516169390508160608160075afa831692505060408160808360065afa815160209092015191945090925016806112555760405163a54f8e2760e01b815260040160405180910390fd5b50935093915050565b6000808260000361127457506000928392509050565b600183811c925080841614600080516020611a6683398151915283106112ad57604051631ff3747d60e21b815260040160405180910390fd5b6112ea600080516020611a668339815191526003600080516020611a6683398151915286600080516020611a6683398151915288890909086114ea565b915080156112fe576112fb8261154e565b91505b50915091565b600080808085158015611315575084155b1561132b575060009250829150819050806114e1565b600286811c94508593506001808816149080881614600080516020611a668339815191528610158061136b5750600080516020611a668339815191528510155b1561138957604051631ff3747d60e21b815260040160405180910390fd5b6000600080516020611a668339815191526113b36003600080516020611a66833981519152611a44565b600080516020611a66833981519152888a090990506000600080516020611a6683398151915288600080516020611a668339815191528a8b090990506000600080516020611a6683398151915288600080516020611a668339815191528a8b09099050600080516020611a6683398151915280600080516020611a668339815191528a860984087f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e50896506114ac600080516020611a6683398151915280600080516020611a668339815191528c870984087f2fcd3ac2a640a154eb23960892a85a68f031ca0c8344b23a577dcf1052b9e7750861154e565b95506114b98787866115b1565b909750955084156114db576114cd8761154e565b96506114d88661154e565b95505b50505050505b92959194509250565b6000611516827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526116ef565b905081600080516020611a668339815191528283091461154957604051631ff3747d60e21b815260040160405180910390fd5b919050565b600080516020611a668339815191529081900681030690565b600080611594837f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526116ef565b905082600080516020611a66833981519152828309149392505050565b600080806115e3600080516020611a6683398151915280878809600080516020611a66833981519152898a09086114ea565b905083156115f7576115f48161154e565b90505b611642600080516020611a668339815191527f183227397098d014dc2822db40c0ac2ecbc0b548b438e5469e10460b6c3e7ea4600080516020611a66833981519152848a08096114ea565b9250600080516020611a6683398151915261166e600080516020611a6683398151915260028609611754565b86099150600080516020611a6683398151915261169b600080516020611a6683398151915284850961154e565b600080516020611a6683398151915285860908861415806116d15750600080516020611a66833981519152808385096002098514155b1561125557604051631ff3747d60e21b815260040160405180910390fd5b6000806040516020815260208082015260206040820152846060820152836080820152600080516020611a6683398151915260a082015260208160c08360055afa90519250905080610c1957604051631ff3747d60e21b815260040160405180910390fd5b6000611780827f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd456116ef565b9050600080516020611a6683398151915281830960011461154957604051631ff3747d60e21b815260040160405180910390fd5b60405180608001604052806004906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b6040518061030001604052806018906020820280368337509192915050565b806101008101831015610c1b57600080fd5b8060408101831015610c1b57600080fd5b6000806000610180848603121561186657600080fd5b611870858561182d565b925061188085610100860161183f565b915061189085610140860161183f565b90509250925092565b60c08101818560005b60048110156118c15781518352602092830192909101906001016118a2565b505050608082018460005b60018110156118eb5781518352602092830192909101906001016118cc565b5050508260a0830152949350505050565b8060808101831015610c1b57600080fd5b600080600080610200858703121561192457600080fd5b61192e868661182d565b935061193e86610100870161183f565b925061194e86610140870161183f565b915061195e8661018087016118fc565b905092959194509250565b600080600080610140858703121561198057600080fd5b61198a86866118fc565b935060a085018681111561199d57600080fd5b60808601935035915061195e8660c087016118fc565b634e487b7160e01b600052603260045260246000fd5b83815282602082015260006040820183516020850160005b828110156119ff5781518452602093840193909101906001016119e1565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b600082611a3f57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115610c1b57634e487b7160e01b600052601160045260246000fdfe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4730644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a26469706673582212200c569d2e0336d09278d1261037190e3977a0e0852aae43d8b88aa50afb9ddbf664736f6c634300081c0033";
    static readonly abi: readonly [{
        readonly inputs: readonly [];
        readonly name: "CommitmentInvalid";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ProofInvalid";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "PublicInputNotInField";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[8]";
            readonly name: "proof";
            readonly type: "uint256[8]";
        }, {
            readonly internalType: "uint256[2]";
            readonly name: "commitments";
            readonly type: "uint256[2]";
        }, {
            readonly internalType: "uint256[2]";
            readonly name: "commitmentPok";
            readonly type: "uint256[2]";
        }];
        readonly name: "compressProof";
        readonly outputs: readonly [{
            readonly internalType: "uint256[4]";
            readonly name: "compressed";
            readonly type: "uint256[4]";
        }, {
            readonly internalType: "uint256[1]";
            readonly name: "compressedCommitments";
            readonly type: "uint256[1]";
        }, {
            readonly internalType: "uint256";
            readonly name: "compressedCommitmentPok";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[4]";
            readonly name: "compressedProof";
            readonly type: "uint256[4]";
        }, {
            readonly internalType: "uint256[1]";
            readonly name: "compressedCommitments";
            readonly type: "uint256[1]";
        }, {
            readonly internalType: "uint256";
            readonly name: "compressedCommitmentPok";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256[4]";
            readonly name: "input";
            readonly type: "uint256[4]";
        }];
        readonly name: "verifyCompressedProof";
        readonly outputs: readonly [];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[8]";
            readonly name: "proof";
            readonly type: "uint256[8]";
        }, {
            readonly internalType: "uint256[2]";
            readonly name: "commitments";
            readonly type: "uint256[2]";
        }, {
            readonly internalType: "uint256[2]";
            readonly name: "commitmentPok";
            readonly type: "uint256[2]";
        }, {
            readonly internalType: "uint256[4]";
            readonly name: "input";
            readonly type: "uint256[4]";
        }];
        readonly name: "verifyProof";
        readonly outputs: readonly [];
        readonly stateMutability: "view";
        readonly type: "function";
    }];
    static createInterface(): StateTransitionVerifierBaseGroth16Interface;
    static connect(address: string, runner?: ContractRunner | null): StateTransitionVerifierBaseGroth16;
}
export {};
