import { ContractFactory, ContractTransactionResponse } from "ethers";
import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../../common";
import type { Tally, TallyInterface } from "../../contracts/Tally";
type TallyConstructorParams = [linkLibraryAddresses: TallyLibraryAddresses, signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class Tally__factory extends ContractFactory {
    constructor(...args: TallyConstructorParams);
    static linkBytecode(linkLibraryAddresses: TallyLibraryAddresses): string;
    getDeployTransaction(overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<ContractDeployTransaction>;
    deploy(overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<Tally & {
        deploymentTransaction(): ContractTransactionResponse;
    }>;
    connect(runner: ContractRunner | null): Tally__factory;
    static readonly bytecode = " $ce9c2c925f157047e54fa833ec4e61409f$__9063248f6677906109ae908590600401611d1b565b602060405180830381865af41580156109cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ef9190611b92565b92915050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001600283604051602001610a2b9190611d4c565b60408051601f1981840301815290829052610a4591611d82565b602060405180830381855afa158015610a62573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610a859190611b92565b6109ef9190611db4565b6000610a9961158a565b838152602081018390526106db815b6040516314d2f97b60e11b815260009073__$6574937f64fc1d7710ec0e28b7a36713bb$__906329a5f2f6906109ae908590600401611dc8565b6107fc6113c7565b604051630926f44b60e31b815260009073__$20527677031d76601747626a9845039fe4$__90634937a258906109ae908590600401611df0565b600080610b34858b8b8b8b61122c565b90506000600754600160a01b900460ff166002811115610b5657610b5661178a565b03610b9257610b6361156c565b610b6d8288610a8f565b81526020810185905260408101849052600154610b8982610eaf565b14925050610c07565b6001600754600160a01b900460ff166002811115610bb257610bb261178a565b1480610bdb57506002600754600160a01b900460ff166002811115610bd957610bd961178a565b145b15610c0757610be861158a565b610bf28288610a8f565b8152602081018590526001546104f882610aa8565b5098975050505050505050565b6060610c1e611480565b905090565b6000806000600660009054906101000a90046001600160a01b03166001600160a01b031663ac98e5df6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9f9190611bab565b50915091506000610cb08787610508565b90506000600660009054906101000a90046001600160a01b03166001600160a01b0316638b6e74636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2b9190611e2d565b90506000600560009054906101000a90046001600160a01b03166001600160a01b031663f3350299836001600160a01b031663652c76e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db59190611e4a565b60075460405160e084901b6001600160e01b0319168152610de892918a918a91600160a01b900460ff1690600401611e67565b600060405180830381865afa158015610e05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e2d9190810190611f4f565b6004805460405163352a4d1560e01b81529293506001600160a01b03169163352a4d1591610e61918b9186918991016120bd565b602060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea29190611b70565b9998505050505050505050565b6040516304b98e1d60e31b815260009073__$dc01a9744591ab014bc46a3b7671cdaefb$ ";
    static readonly abi: readonly [{
        readonly inputs: readonly [];
        readonly name: "AllBallotsTallied";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "AlreadyInitialized";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "BatchStartIndexTooLarge";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "IncorrectSpentVoiceCredits";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "InvalidTallyVotesProof";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "NotSupported";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "ProcessingNotComplete";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "TallyBatchSizeTooLarge";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "VotesNotTallied";
        readonly type: "error";
    }, {
        readonly inputs: readonly [];
        readonly name: "totalSignupsTooLarge";
        readonly type: "error";
    }, {
        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: "voteOptionIndices";
                readonly type: "uint256[]";
            }, {
                readonly internalType: "uint256[]";
                readonly name: "tallyResults";
                readonly type: "uint256[]";
            }, {
                readonly internalType: "uint256[][][]";
                readonly name: "tallyResultProofs";
                readonly type: "uint256[][][]";
            }, {
                readonly internalType: "uint256";
                readonly name: "totalSpent";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "totalSpentSalt";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "tallyResultSalt";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "newResultsCommitment";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "spentVoiceCreditsHash";
                readonly type: "uint256";
            }, {
                readonly internalType: "uint256";
                readonly name: "perVOSpentVoiceCreditsHash";
                readonly type: "uint256";
            }];
            readonly internalType: "struct ITally.AddTallyResultsArgs";
            readonly name: "args";
            readonly type: "tuple";
        }];
        readonly name: "addTallyResults";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "getAppendedBytes";
        readonly outputs: readonly [{
            readonly internalType: "bytes";
            readonly name: "appendedBytes";
            readonly type: "bytes";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_batchStartIndex";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_newTallyCommitment";
            readonly type: "uint256";
        }];
        readonly name: "getPublicCircuitInputs";
        readonly outputs: readonly [{
            readonly internalType: "uint256[]";
            readonly name: "publicInputs";
            readonly type: "uint256[]";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "index";
            readonly type: "uint256";
        }];
        readonly name: "getTallyResults";
        readonly outputs: readonly [{
            readonly components: readonly [{
                readonly internalType: "uint256";
                readonly name: "value";
                readonly type: "uint256";
            }, {
                readonly internalType: "bool";
                readonly name: "isSet";
                readonly type: "bool";
            }];
            readonly internalType: "struct ITally.TallyResult";
            readonly name: "";
            readonly type: "tuple";
        }];
        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: "initialize";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "initialized";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "isTallied";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "tallied";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "messageProcessor";
        readonly outputs: readonly [{
            readonly internalType: "contract IMessageProcessor";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "mode";
        readonly outputs: readonly [{
            readonly internalType: "enum DomainObjs.Mode";
            readonly name: "";
            readonly type: "uint8";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "poll";
        readonly outputs: readonly [{
            readonly internalType: "contract IPoll";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "sbCommitment";
        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: "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 name: "tallyBatchNum";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "tallyCommitment";
        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: "_newTallyCommitment";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256[8]";
            readonly name: "_proof";
            readonly type: "uint256[8]";
        }];
        readonly name: "tallyVotes";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "totalSpent";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "totalTallyResults";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "updateSbCommitment";
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
        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 internalType: "uint256";
            readonly name: "_voteOptionIndex";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_spent";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256[][]";
            readonly name: "_spentProof";
            readonly type: "uint256[][]";
        }, {
            readonly internalType: "uint256";
            readonly name: "_spentSalt";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint8";
            readonly name: "_voteOptionTreeDepth";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint256";
            readonly name: "_spentVoiceCreditsHash";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_resultCommitment";
            readonly type: "uint256";
        }];
        readonly name: "verifyPerVoteOptionSpentVoiceCredits";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "isValid";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_totalSpent";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_totalSpentSalt";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_resultCommitment";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_perVoteOptionSpentVoiceCreditsHash";
            readonly type: "uint256";
        }];
        readonly name: "verifySpentVoiceCredits";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "isValid";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_batchStartIndex";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_newTallyCommitment";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256[8]";
            readonly name: "_proof";
            readonly type: "uint256[8]";
        }];
        readonly name: "verifyTallyProof";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "isValid";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_voteOptionIndex";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_tallyResult";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256[][]";
            readonly name: "_tallyResultProof";
            readonly type: "uint256[][]";
        }, {
            readonly internalType: "uint256";
            readonly name: "_tallyResultSalt";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint8";
            readonly name: "_voteOptionTreeDepth";
            readonly type: "uint8";
        }, {
            readonly internalType: "uint256";
            readonly name: "_spentVoiceCreditsHash";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "_perVoteOptionSpentVoiceCreditsHash";
            readonly type: "uint256";
        }];
        readonly name: "verifyTallyResult";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "isValid";
            readonly type: "bool";
        }];
        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(): TallyInterface;
    static connect(address: string, runner?: ContractRunner | null): Tally;
}
export interface TallyLibraryAddresses {
    ["contracts/crypto/PoseidonT5.sol:PoseidonT5"]: string;
    ["contracts/crypto/PoseidonT3.sol:PoseidonT3"]: string;
    ["contracts/crypto/PoseidonT6.sol:PoseidonT6"]: string;
    ["contracts/crypto/PoseidonT4.sol:PoseidonT4"]: string;
}
export {};
//# sourceMappingURL=Tally__factory.d.ts.map