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 IProcessRegistryInterface extends Interface { getFunction(nameOrSignature: "getNextProcessId" | "getProcess" | "getProcessEndTime" | "getRVerifierVKeyHash" | "getSTVerifierVKeyHash" | "newProcess" | "setProcessCensus" | "setProcessDuration" | "setProcessMaxVoters" | "setProcessResults" | "setProcessStatus" | "submitStateTransition"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "CensusUpdated" | "ProcessCreated" | "ProcessDurationChanged" | "ProcessMaxVotersChanged" | "ProcessResultsSet" | "ProcessStateTransitioned" | "ProcessStatusChanged"): EventFragment; 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: "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: "submitStateTransition", values: [BytesLike, BytesLike, BytesLike]): string; 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: "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: "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 IProcessRegistry extends BaseContract { connect(runner?: ContractRunner | null): IProcessRegistry; waitForDeployment(): Promise; interface: IProcessRegistryInterface; 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; 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">; 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">; submitStateTransition: TypedContractMethod<[ processId: BytesLike, proof: BytesLike, input: BytesLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; 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: "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: "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; }; }