import { ContractFactory, ContractTransactionResponse } from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { PayableOverrides } from "../../common";
import type { MACI, MACIInterface } from "../../contracts/MACI";
type MACIConstructorParams = [linkLibraryAddresses: MACILibraryAddresses, signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class MACI__factory extends ContractFactory {
    constructor(...args: MACIConstructorParams);
    static linkBytecode(linkLibraryAddresses: MACILibraryAddresses): string;
    getDeployTransaction(initParams: MACI.InitParamsStruct, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<ContractDeployTransaction>;
    deploy(initParams: MACI.InitParamsStruct, overrides?: PayableOverrides & {
        from?: string;
    }): Promise<MACI & {
        deploymentTransaction(): ContractTransactionResponse;
    }>;
    connect(runner: ContractRunner | null): MACI__factory;
    static readonly bytecode = "0x61018060405260405161234c38038061234c833981016040819052610023916104c8565b61003c600760008051602061232c83398151915261013e565b50600b805460018101825560009190915260008051602061232c8339815191527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99091015580516001600160a01b0390811660c09081526020830151821660e0526040830151821661010052606083015182166101205260808084015183166101405260a0840151909216610160528201805160ff908116909252516100e49116600261066e565b60a05260e08101516100fa906000906005610390565b50604080518082019091526001808252602082015261011890610315565b60000361013857604051633d7ba68560e21b815260040160405180910390fd5b506106f7565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018210610180576040516361c0541760e11b815260040160405180910390fd5b816000036101a1576040516314b48df160e11b815260040160405180910390fd5b6000828152600384016020526040902054156101d0576040516312c50cad60e11b815260040160405180910390fd5b8254600180850154906101e4908390610681565b6001821b10156101fa576101f781610694565b90505b600185018190558360005b828110156102d7578084901c6001166001036102bb57604080518082018252600083815260028a01602090815290839020548252810184905290516314d2f97b60e11b815273__$6574937f64fc1d7710ec0e28b7a36713bb$__916329a5f2f69161027391906004016106ad565b602060405180830381865af4158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b491906106de565b91506102cf565b600081815260028801602052604090208290555b600101610205565b506102e183610694565b8087556000928352600287016020908152604080852084905587855260038901909152909220919091559150505b92915050565b6040516314d2f97b60e11b815260009073__$6574937f64fc1d7710ec0e28b7a36713bb$ $ce9c2c925f157047e54fa833ec4e61409f$__9063248f66779061077590859060040161177b565b602060405180830381865af4158015610792573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b691906117ac565b92915050565b6000818152600a60205260408120548082036107eb57604051632cb4506160e21b815260040160405180910390fd5b6107f6600182611768565b9392505050565b600b818154811061080d57600080fd5b600091825260209091200154905081565b604080516060810182526000808252602082018190529181019190915260058054600181019091556080830151805160209091015161085d9190610e68565b61087a5760405163145a1fdd60e31b815260040160405180910390fd5b60006040518060a00160405280306001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681526020018560c001516001600160a01b031681526020018560e001516001600160a01b031681525090506000604051806101400160405280866000015181526020018660200151815260200186604001518152602001866060015160ff168152602001866080015181526020018381526020016000600188604001516020015161097a91906117c5565b60ff166005811061098d5761098d6117de565b015481526020018481526020018661010001518152602001866101200151815250905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b332c20836040518263ffffffff1660e01b81526004016109fe9190611839565b6020604051808303816000875af1158015610a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a419190611941565b60a0870151604051631c7d4e2b60e11b81529192506000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916338fa9c5691610adc917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000918891600401611980565b6020604051808303816000875af1158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1f9190611941565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663363448737f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000086868d60a001516040518663ffffffff1660e01b8152600401610bbb9594939291906119b6565b6020604051808303816000875af1158015610bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfe9190611941565b604080516060810182526001600160a01b038087168252858116602080840191825282861684860190815260008d815260068352869020855181549086166001600160a01b031991821617825593516001820180549187169186169190911790559051600290910180549190941692169190911790915560808c015190810151905160a08d01519351949550919390927f38b2d18bb65cc91d7b436014cf44c8298b13bee60cc18d9e8efec26d1df3189091610cbb918c916119eb565b60405180910390a398975050505050505050565b6000600080516020611b2e833981519152600283604051602001610cf391906119ff565b60408051601f1981840301815290829052610d0d91611a35565b602060405180830381855afa158015610d2a573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d4d91906117ac565b6107b69190611a67565b6000610d6161110f565b83815260208101839052610d7481610d7c565b949350505050565b6040516314d2f97b60e11b815260009073__$6574937f64fc1d7710ec0e28b7a36713bb$__906329a5f2f690610775908590600401611a89565b604051630926f44b60e31b815260009073__$20527677031d76601747626a9845039fe4$__90634937a25890610775908590600401611ab1565b60008160058110610e0057600080fd5b0154905081565b6040516304b98e1d60e31b815260009073__$dc01a9744591ab014bc46a3b7671cdaefb$__906325cc70e890610775908590600401611ad9565b6000600b8281548110610e5657610e566117de565b90600052602060002001549050919050565b600080600080516020611b2e83398151915284850990506000600080516020611b2e83398151915284850990506000600080516020611b2e83398151915282600080516020611b2e83398151915285620292fc090890506000600080516020611b2e8339815191528084600080516020611b2e83398151915287620292f809096001089050610f068282600080516020611b2e8339815191526110d4565b15979650505050505050565b6000600080516020611b2e8339815191528210610f42576040516361c0541760e11b815260040160405180910390fd5b81600003610f63576040516314b48df160e11b815260040160405180910390fd5b600082815260038401602052604090205415610f92576040516312c50cad60e11b815260040160405180910390fd5b825460018085015490610fa6908390611b01565b6001821b1015610fbc57610fb981611b14565b90505b600185018190558360005b82811015611099578084901c60011660010361107d57604080518082018252600083815260028a01602090815290839020548252810184905290516314d2f97b60e11b815273__$6574937f64fc1d7710ec0e28b7a36713bb$ ";
    static readonly abi: readonly [{
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "contract IPollFactory";
                readonly name: "pollFactory";
                readonly type: "address";
            }, {
                readonly internalType: "contract IMessageProcessorFactory";
                readonly name: "messageProcessorFactory";
                readonly type: "address";
            }, {
                readonly internalType: "contract ITallyFactory";
                readonly name: "tallyFactory";
                readonly type: "address";
            }, {
                readonly internalType: "contract IBasePolicy";
                readonly name: "signUpPolicy";
                readonly type: "address";
            }, {
                readonly internalType: "contract IVerifier";
                readonly name: "verifier";
                readonly type: "address";
            }, {
                readonly internalType: "contract IVerifyingKeysRegistry";
                readonly name: "verifyingKeysRegistry";
                readonly type: "address";
            }, {
                readonly internalType: "uint8";
                readonly name: "stateTreeDepth";
                readonly type: "uint8";
            }, {
                readonly internalType: "uint256[5]";
                readonly name: "emptyBallotRoots";
                readonly type: "uint256[5]";
            }];
            readonly internalType: "struct MACI.InitParams";
            readonly name: "initParams";
            readonly type: "tuple";
        }];
        readonly stateMutability: "payable";
        readonly type: "constructor";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidPublicKey";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "LeafAlreadyExists";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "LeafCannotBeZero";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "LeafGreaterThanSnarkScalarField";
        readonly type: "error";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "pollId";
            readonly type: "uint256";
        }];
        readonly name: "PollDoesNotExist";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "PoseidonHashLibrariesNotLinked";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "TooManySignups";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "UserNotSignedUp";
        readonly type: "error";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "_pollId";
            readonly type: "uint256";
        }, {
            readonly indexed: true;
            readonly internalType: "uint256";
            readonly name: "_coordinatorPublicKeyX";
            readonly type: "uint256";
        }, {
            readonly indexed: true;
            readonly internalType: "uint256";
            readonly name: "_coordinatorPublicKeyY";
            readonly type: "uint256";
        }, {
            readonly indexed: false;
            readonly internalType: "enum DomainObjs.Mode";
            readonly name: "_mode";
            readonly type: "uint8";
        }];
        readonly name: "DeployPoll";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "_stateIndex";
            readonly type: "uint256";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "_timestamp";
            readonly type: "uint256";
        }, {
            readonly indexed: true;
            readonly internalType: "uint256";
            readonly name: "_userPublicKeyX";
            readonly type: "uint256";
        }, {
            readonly indexed: true;
            readonly internalType: "uint256";
            readonly name: "_userPublicKeyY";
            readonly type: "uint256";
        }];
        readonly name: "SignUp";
        readonly type: "event";
    }, {
        readonly inputs: readonly [];
        readonly name: "MESSAGE_DATA_LENGTH";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint256";
                readonly name: "startDate";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "endDate";
                readonly type: "uint256";
            }, {
                readonly components: readonly [{
                    readonly internalType: "uint8";
                    readonly name: "tallyProcessingStateTreeDepth";
                    readonly type: "uint8";
                }, {
                    readonly internalType: "uint8";
                    readonly name: "voteOptionTreeDepth";
                    readonly type: "uint8";
                }, {
                    readonly internalType: "uint8";
                    readonly name: "stateTreeDepth";
                    readonly type: "uint8";
                }];
                readonly internalType: "struct Params.TreeDepths";
                readonly name: "treeDepths";
                readonly type: "tuple";
            }, {
                readonly internalType: "uint8";
                readonly name: "messageBatchSize";
                readonly type: "uint8";
            }, {
                readonly components: readonly [{
                    readonly internalType: "uint256";
                    readonly name: "x";
                    readonly type: "uint256";
                }, {
                    readonly internalType: "uint256";
                    readonly name: "y";
                    readonly type: "uint256";
                }];
                readonly internalType: "struct DomainObjs.PublicKey";
                readonly name: "coordinatorPublicKey";
                readonly type: "tuple";
            }, {
                readonly internalType: "enum DomainObjs.Mode";
                readonly name: "mode";
                readonly type: "uint8";
            }, {
                readonly internalType: "address";
                readonly name: "policy";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "initialVoiceCreditProxy";
                readonly type: "address";
            }, {
                readonly internalType: "address[]";
                readonly name: "relayers";
                readonly type: "address[]";
            }, {
                readonly internalType: "uint256";
                readonly name: "voteOptions";
                readonly type: "uint256";
            }];
            readonly internalType: "struct IMACI.DeployPollArgs";
            readonly name: "args";
            readonly type: "tuple";
        }];
        readonly name: "deployPoll";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "poll";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "messageProcessor";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "tally";
                readonly type: "address";
            }];
            readonly internalType: "struct IMACI.PollContracts";
            readonly name: "";
            readonly type: "tuple";
        }];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly name: "emptyBallotRoots";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_pollId";
            readonly type: "uint256";
        }];
        readonly name: "getPoll";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "address";
                readonly name: "poll";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "messageProcessor";
                readonly type: "address";
            }, {
                readonly internalType: "address";
                readonly name: "tally";
                readonly type: "address";
            }];
            readonly internalType: "struct IMACI.PollContracts";
            readonly name: "pollContracts";
            readonly type: "tuple";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_publicKeyHash";
            readonly type: "uint256";
        }];
        readonly name: "getStateIndex";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_index";
            readonly type: "uint256";
        }];
        readonly name: "getStateRootOnIndexedSignUp";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "stateRoot";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "getStateTreeRoot";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "root";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[2]";
            readonly name: "array";
            readonly type: "uint256[2]";
        }];
        readonly name: "hash2";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "result";
            readonly type: "uint256";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[3]";
            readonly name: "array";
            readonly type: "uint256[3]";
        }];
        readonly name: "hash3";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "result";
            readonly type: "uint256";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[4]";
            readonly name: "array";
            readonly type: "uint256[4]";
        }];
        readonly name: "hash4";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "result";
            readonly type: "uint256";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[5]";
            readonly name: "array";
            readonly type: "uint256[5]";
        }];
        readonly name: "hash5";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "result";
            readonly type: "uint256";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "left";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "right";
            readonly type: "uint256";
        }];
        readonly name: "hashLeftRight";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "result";
            readonly type: "uint256";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "leanIMTData";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "size";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "depth";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "maxSignups";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "messageProcessorFactory";
        readonly outputs: readonly [{
            readonly internalType: "contract IMessageProcessorFactory";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "nextPollId";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "pollFactory";
        readonly outputs: readonly [{
            readonly internalType: "contract IPollFactory";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly name: "polls";
        readonly outputs: readonly [{
            readonly internalType: "address";
            readonly name: "poll";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "messageProcessor";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "tally";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256[]";
            readonly name: "array";
            readonly type: "uint256[]";
        }];
        readonly name: "sha256Hash";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "result";
            readonly type: "uint256";
        }];
        readonly stateMutability: "pure";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint256";
                readonly name: "x";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "y";
                readonly type: "uint256";
            }];
            readonly internalType: "struct DomainObjs.PublicKey";
            readonly name: "_publicKey";
            readonly type: "tuple";
        }, {
            readonly internalType: "bytes";
            readonly name: "_signUpPolicyData";
            readonly type: "bytes";
        }];
        readonly name: "signUp";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "signUpPolicy";
        readonly outputs: readonly [{
            readonly internalType: "contract IBasePolicy";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly name: "stateRootsOnSignUp";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "stateTreeDepth";
        readonly outputs: readonly [{
            readonly internalType: "uint8";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "tallyFactory";
        readonly outputs: readonly [{
            readonly internalType: "contract ITallyFactory";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "totalSignups";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "signUps";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "verifier";
        readonly outputs: readonly [{
            readonly internalType: "contract IVerifier";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "verifyingKeysRegistry";
        readonly outputs: readonly [{
            readonly internalType: "contract IVerifyingKeysRegistry";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }];
    static createInterface(): MACIInterface;
    static connect(address: string, runner?: ContractRunner | null): MACI;
}
export interface MACILibraryAddresses {
    ["contracts/crypto/PoseidonT3.sol:PoseidonT3"]: string;
    ["contracts/crypto/PoseidonT5.sol:PoseidonT5"]: string;
    ["contracts/crypto/PoseidonT6.sol:PoseidonT6"]: string;
    ["contracts/crypto/PoseidonT4.sol:PoseidonT4"]: string;
}
export {};
//# sourceMappingURL=MACI__factory.d.ts.map