import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../common"; export declare namespace DAVINCITypes { type EncryptionKeyStruct = { x: BigNumberish; y: BigNumberish; }; type EncryptionKeyStructOutput = [x: bigint, y: bigint] & { x: bigint; y: bigint; }; type BallotModeStruct = { uniqueValues: boolean; numFields: BigNumberish; groupSize: BigNumberish; costExponent: BigNumberish; maxValue: BigNumberish; minValue: BigNumberish; maxValueSum: BigNumberish; minValueSum: BigNumberish; }; type BallotModeStructOutput = [ uniqueValues: boolean, numFields: bigint, groupSize: bigint, costExponent: bigint, maxValue: bigint, minValue: bigint, maxValueSum: bigint, minValueSum: bigint ] & { uniqueValues: boolean; numFields: bigint; groupSize: bigint; costExponent: bigint; maxValue: bigint; minValue: bigint; maxValueSum: bigint; minValueSum: bigint; }; type CensusStruct = { censusOrigin: BigNumberish; censusRoot: BytesLike; contractAddress: AddressLike; censusURI: string; onchainAllowAnyValidRoot: boolean; }; type CensusStructOutput = [ censusOrigin: bigint, censusRoot: string, contractAddress: string, censusURI: string, onchainAllowAnyValidRoot: boolean ] & { censusOrigin: bigint; censusRoot: string; contractAddress: string; censusURI: string; onchainAllowAnyValidRoot: boolean; }; type ProcessStruct = { status: BigNumberish; organizationId: AddressLike; encryptionKey: DAVINCITypes.EncryptionKeyStruct; latestStateRoot: BigNumberish; result: BigNumberish[]; startTime: BigNumberish; duration: BigNumberish; maxVoters: BigNumberish; votersCount: BigNumberish; overwrittenVotesCount: BigNumberish; creationBlock: BigNumberish; batchNumber: BigNumberish; metadataURI: string; ballotMode: DAVINCITypes.BallotModeStruct; census: DAVINCITypes.CensusStruct; }; type ProcessStructOutput = [ status: bigint, organizationId: string, encryptionKey: DAVINCITypes.EncryptionKeyStructOutput, latestStateRoot: bigint, result: bigint[], startTime: bigint, duration: bigint, maxVoters: bigint, votersCount: bigint, overwrittenVotesCount: bigint, creationBlock: bigint, batchNumber: bigint, metadataURI: string, ballotMode: DAVINCITypes.BallotModeStructOutput, census: DAVINCITypes.CensusStructOutput ] & { status: bigint; organizationId: string; encryptionKey: DAVINCITypes.EncryptionKeyStructOutput; latestStateRoot: bigint; result: bigint[]; startTime: bigint; duration: bigint; maxVoters: bigint; votersCount: bigint; overwrittenVotesCount: bigint; creationBlock: bigint; batchNumber: bigint; metadataURI: string; ballotMode: DAVINCITypes.BallotModeStructOutput; census: DAVINCITypes.CensusStructOutput; }; } export interface ProcessRegistryInterface extends Interface { getFunction(nameOrSignature: "BLOB_INDEX" | "MAX_CENSUS_ORIGIN" | "MAX_STATUS" | "blobsDA" | "chainID" | "getNextProcessId" | "getProcess" | "getProcessEndTime" | "getRVerifierVKeyHash" | "getSTVerifierVKeyHash" | "newProcess" | "pidPrefix" | "processCount" | "processNonce" | "processes" | "rVerifier" | "setProcessCensus" | "setProcessDuration" | "setProcessMaxVoters" | "setProcessResults" | "setProcessStatus" | "stVerifier" | "submitStateTransition"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "CensusUpdated" | "ProcessCreated" | "ProcessDurationChanged" | "ProcessMaxVotersChanged" | "ProcessResultsSet" | "ProcessStateTransitioned" | "ProcessStatusChanged"): EventFragment; encodeFunctionData(functionFragment: "BLOB_INDEX", values?: undefined): string; encodeFunctionData(functionFragment: "MAX_CENSUS_ORIGIN", values?: undefined): string; encodeFunctionData(functionFragment: "MAX_STATUS", values?: undefined): string; encodeFunctionData(functionFragment: "blobsDA", values?: undefined): string; encodeFunctionData(functionFragment: "chainID", values?: undefined): string; encodeFunctionData(functionFragment: "getNextProcessId", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getProcess", values: [BytesLike]): string; encodeFunctionData(functionFragment: "getProcessEndTime", values: [BytesLike]): string; encodeFunctionData(functionFragment: "getRVerifierVKeyHash", values?: undefined): string; encodeFunctionData(functionFragment: "getSTVerifierVKeyHash", values?: undefined): string; encodeFunctionData(functionFragment: "newProcess", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, DAVINCITypes.BallotModeStruct, DAVINCITypes.CensusStruct, string, DAVINCITypes.EncryptionKeyStruct ]): string; encodeFunctionData(functionFragment: "pidPrefix", values?: undefined): string; encodeFunctionData(functionFragment: "processCount", values?: undefined): string; encodeFunctionData(functionFragment: "processNonce", values: [AddressLike]): string; encodeFunctionData(functionFragment: "processes", values: [BytesLike]): string; encodeFunctionData(functionFragment: "rVerifier", values?: undefined): string; encodeFunctionData(functionFragment: "setProcessCensus", values: [BytesLike, DAVINCITypes.CensusStruct]): string; encodeFunctionData(functionFragment: "setProcessDuration", values: [BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "setProcessMaxVoters", values: [BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "setProcessResults", values: [BytesLike, BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "setProcessStatus", values: [BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "stVerifier", values?: undefined): string; encodeFunctionData(functionFragment: "submitStateTransition", values: [BytesLike, BytesLike, BytesLike]): string; decodeFunctionResult(functionFragment: "BLOB_INDEX", data: BytesLike): Result; decodeFunctionResult(functionFragment: "MAX_CENSUS_ORIGIN", data: BytesLike): Result; decodeFunctionResult(functionFragment: "MAX_STATUS", data: BytesLike): Result; decodeFunctionResult(functionFragment: "blobsDA", data: BytesLike): Result; decodeFunctionResult(functionFragment: "chainID", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getNextProcessId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProcess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProcessEndTime", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRVerifierVKeyHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSTVerifierVKeyHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "newProcess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pidPrefix", data: BytesLike): Result; decodeFunctionResult(functionFragment: "processCount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "processNonce", data: BytesLike): Result; decodeFunctionResult(functionFragment: "processes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "rVerifier", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProcessCensus", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProcessDuration", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProcessMaxVoters", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProcessResults", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProcessStatus", data: BytesLike): Result; decodeFunctionResult(functionFragment: "stVerifier", data: BytesLike): Result; decodeFunctionResult(functionFragment: "submitStateTransition", data: BytesLike): Result; } export declare namespace CensusUpdatedEvent { type InputTuple = [ processId: BytesLike, censusRoot: BytesLike, censusURI: string ]; type OutputTuple = [ processId: string, censusRoot: string, censusURI: string ]; interface OutputObject { processId: string; censusRoot: string; censusURI: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProcessCreatedEvent { type InputTuple = [processId: BytesLike, creator: AddressLike]; type OutputTuple = [processId: string, creator: string]; interface OutputObject { processId: string; creator: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProcessDurationChangedEvent { type InputTuple = [processId: BytesLike, duration: BigNumberish]; type OutputTuple = [processId: string, duration: bigint]; interface OutputObject { processId: string; duration: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProcessMaxVotersChangedEvent { type InputTuple = [processId: BytesLike, maxVoters: BigNumberish]; type OutputTuple = [processId: string, maxVoters: bigint]; interface OutputObject { processId: string; maxVoters: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProcessResultsSetEvent { type InputTuple = [ processId: BytesLike, sender: AddressLike, result: BigNumberish[] ]; type OutputTuple = [ processId: string, sender: string, result: bigint[] ]; interface OutputObject { processId: string; sender: string; result: bigint[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProcessStateTransitionedEvent { type InputTuple = [ processId: BytesLike, sender: AddressLike, oldStateRoot: BigNumberish, newStateRoot: BigNumberish, newVotersCount: BigNumberish, newOverwrittenVotesCount: BigNumberish ]; type OutputTuple = [ processId: string, sender: string, oldStateRoot: bigint, newStateRoot: bigint, newVotersCount: bigint, newOverwrittenVotesCount: bigint ]; interface OutputObject { processId: string; sender: string; oldStateRoot: bigint; newStateRoot: bigint; newVotersCount: bigint; newOverwrittenVotesCount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProcessStatusChangedEvent { type InputTuple = [ processId: BytesLike, oldStatus: BigNumberish, newStatus: BigNumberish ]; type OutputTuple = [ processId: string, oldStatus: bigint, newStatus: bigint ]; interface OutputObject { processId: string; oldStatus: bigint; newStatus: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface ProcessRegistry extends BaseContract { connect(runner?: ContractRunner | null): ProcessRegistry; waitForDeployment(): Promise; interface: ProcessRegistryInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; BLOB_INDEX: TypedContractMethod<[], [bigint], "view">; MAX_CENSUS_ORIGIN: TypedContractMethod<[], [bigint], "view">; MAX_STATUS: TypedContractMethod<[], [bigint], "view">; blobsDA: TypedContractMethod<[], [boolean], "view">; chainID: TypedContractMethod<[], [bigint], "view">; getNextProcessId: TypedContractMethod<[ organizationId: AddressLike ], [ string ], "view">; getProcess: TypedContractMethod<[ processId: BytesLike ], [ DAVINCITypes.ProcessStructOutput ], "view">; getProcessEndTime: TypedContractMethod<[ processId: BytesLike ], [ bigint ], "view">; getRVerifierVKeyHash: TypedContractMethod<[], [string], "view">; getSTVerifierVKeyHash: TypedContractMethod<[], [string], "view">; newProcess: TypedContractMethod<[ status: BigNumberish, startTime: BigNumberish, duration: BigNumberish, maxVoters: BigNumberish, ballotMode: DAVINCITypes.BallotModeStruct, census: DAVINCITypes.CensusStruct, metadata: string, encryptionKey: DAVINCITypes.EncryptionKeyStruct ], [ string ], "nonpayable">; pidPrefix: TypedContractMethod<[], [bigint], "view">; processCount: TypedContractMethod<[], [bigint], "view">; processNonce: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; processes: TypedContractMethod<[ arg0: BytesLike ], [ [ bigint, string, DAVINCITypes.EncryptionKeyStructOutput, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, string, DAVINCITypes.BallotModeStructOutput, DAVINCITypes.CensusStructOutput ] & { status: bigint; organizationId: string; encryptionKey: DAVINCITypes.EncryptionKeyStructOutput; latestStateRoot: bigint; startTime: bigint; duration: bigint; maxVoters: bigint; votersCount: bigint; overwrittenVotesCount: bigint; creationBlock: bigint; batchNumber: bigint; metadataURI: string; ballotMode: DAVINCITypes.BallotModeStructOutput; census: DAVINCITypes.CensusStructOutput; } ], "view">; rVerifier: TypedContractMethod<[], [string], "view">; setProcessCensus: TypedContractMethod<[ processId: BytesLike, census: DAVINCITypes.CensusStruct ], [ void ], "nonpayable">; setProcessDuration: TypedContractMethod<[ processId: BytesLike, _duration: BigNumberish ], [ void ], "nonpayable">; setProcessMaxVoters: TypedContractMethod<[ processId: BytesLike, _maxVoters: BigNumberish ], [ void ], "nonpayable">; setProcessResults: TypedContractMethod<[ processId: BytesLike, proof: BytesLike, input: BytesLike ], [ void ], "nonpayable">; setProcessStatus: TypedContractMethod<[ processId: BytesLike, newStatus: BigNumberish ], [ void ], "nonpayable">; stVerifier: TypedContractMethod<[], [string], "view">; submitStateTransition: TypedContractMethod<[ processId: BytesLike, proof: BytesLike, input: BytesLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "BLOB_INDEX"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "MAX_CENSUS_ORIGIN"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "MAX_STATUS"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "blobsDA"): TypedContractMethod<[], [boolean], "view">; getFunction(nameOrSignature: "chainID"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getNextProcessId"): TypedContractMethod<[organizationId: AddressLike], [string], "view">; getFunction(nameOrSignature: "getProcess"): TypedContractMethod<[ processId: BytesLike ], [ DAVINCITypes.ProcessStructOutput ], "view">; getFunction(nameOrSignature: "getProcessEndTime"): TypedContractMethod<[processId: BytesLike], [bigint], "view">; getFunction(nameOrSignature: "getRVerifierVKeyHash"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getSTVerifierVKeyHash"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "newProcess"): TypedContractMethod<[ status: BigNumberish, startTime: BigNumberish, duration: BigNumberish, maxVoters: BigNumberish, ballotMode: DAVINCITypes.BallotModeStruct, census: DAVINCITypes.CensusStruct, metadata: string, encryptionKey: DAVINCITypes.EncryptionKeyStruct ], [ string ], "nonpayable">; getFunction(nameOrSignature: "pidPrefix"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "processCount"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "processNonce"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "processes"): TypedContractMethod<[ arg0: BytesLike ], [ [ bigint, string, DAVINCITypes.EncryptionKeyStructOutput, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint, string, DAVINCITypes.BallotModeStructOutput, DAVINCITypes.CensusStructOutput ] & { status: bigint; organizationId: string; encryptionKey: DAVINCITypes.EncryptionKeyStructOutput; latestStateRoot: bigint; startTime: bigint; duration: bigint; maxVoters: bigint; votersCount: bigint; overwrittenVotesCount: bigint; creationBlock: bigint; batchNumber: bigint; metadataURI: string; ballotMode: DAVINCITypes.BallotModeStructOutput; census: DAVINCITypes.CensusStructOutput; } ], "view">; getFunction(nameOrSignature: "rVerifier"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "setProcessCensus"): TypedContractMethod<[ processId: BytesLike, census: DAVINCITypes.CensusStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProcessDuration"): TypedContractMethod<[ processId: BytesLike, _duration: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProcessMaxVoters"): TypedContractMethod<[ processId: BytesLike, _maxVoters: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProcessResults"): TypedContractMethod<[ processId: BytesLike, proof: BytesLike, input: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProcessStatus"): TypedContractMethod<[ processId: BytesLike, newStatus: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "stVerifier"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "submitStateTransition"): TypedContractMethod<[ processId: BytesLike, proof: BytesLike, input: BytesLike ], [ void ], "nonpayable">; getEvent(key: "CensusUpdated"): TypedContractEvent; getEvent(key: "ProcessCreated"): TypedContractEvent; getEvent(key: "ProcessDurationChanged"): TypedContractEvent; getEvent(key: "ProcessMaxVotersChanged"): TypedContractEvent; getEvent(key: "ProcessResultsSet"): TypedContractEvent; getEvent(key: "ProcessStateTransitioned"): TypedContractEvent; getEvent(key: "ProcessStatusChanged"): TypedContractEvent; filters: { "CensusUpdated(bytes31,bytes32,string)": TypedContractEvent; CensusUpdated: TypedContractEvent; "ProcessCreated(bytes31,address)": TypedContractEvent; ProcessCreated: TypedContractEvent; "ProcessDurationChanged(bytes31,uint256)": TypedContractEvent; ProcessDurationChanged: TypedContractEvent; "ProcessMaxVotersChanged(bytes31,uint256)": TypedContractEvent; ProcessMaxVotersChanged: TypedContractEvent; "ProcessResultsSet(bytes31,address,uint256[])": TypedContractEvent; ProcessResultsSet: TypedContractEvent; "ProcessStateTransitioned(bytes31,address,uint256,uint256,uint256,uint256)": TypedContractEvent; ProcessStateTransitioned: TypedContractEvent; "ProcessStatusChanged(bytes31,uint8,uint8)": TypedContractEvent; ProcessStatusChanged: TypedContractEvent; }; }