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.js"; export type E3Struct = { seed: BigNumberish; committeeSize: BigNumberish; requestBlock: BigNumberish; inputWindow: [BigNumberish, BigNumberish]; encryptionSchemeId: BytesLike; e3Program: AddressLike; paramSet: BigNumberish; customParams: BytesLike; decryptionVerifier: AddressLike; pkVerifier: AddressLike; committeePublicKey: BytesLike; ciphertextOutput: BytesLike; plaintextOutput: BytesLike; requester: AddressLike; proofAggregationEnabled: boolean; }; export type E3StructOutput = [seed: bigint, committeeSize: bigint, requestBlock: bigint, inputWindow: [bigint, bigint], encryptionSchemeId: string, e3Program: string, paramSet: bigint, customParams: string, decryptionVerifier: string, pkVerifier: string, committeePublicKey: string, ciphertextOutput: string, plaintextOutput: string, requester: string, proofAggregationEnabled: boolean] & { seed: bigint; committeeSize: bigint; requestBlock: bigint; inputWindow: [bigint, bigint]; encryptionSchemeId: string; e3Program: string; paramSet: bigint; customParams: string; decryptionVerifier: string; pkVerifier: string; committeePublicKey: string; ciphertextOutput: string; plaintextOutput: string; requester: string; proofAggregationEnabled: boolean; }; export declare namespace IEnclave { type PricingConfigStruct = { keyGenFixedPerNode: BigNumberish; keyGenPerEncryptionProof: BigNumberish; coordinationPerPair: BigNumberish; availabilityPerNodePerSec: BigNumberish; decryptionPerNode: BigNumberish; publicationBase: BigNumberish; verificationPerProof: BigNumberish; protocolTreasury: AddressLike; marginBps: BigNumberish; protocolShareBps: BigNumberish; dkgUtilizationBps: BigNumberish; computeUtilizationBps: BigNumberish; decryptUtilizationBps: BigNumberish; minCommitteeSize: BigNumberish; minThreshold: BigNumberish; }; type PricingConfigStructOutput = [keyGenFixedPerNode: bigint, keyGenPerEncryptionProof: bigint, coordinationPerPair: bigint, availabilityPerNodePerSec: bigint, decryptionPerNode: bigint, publicationBase: bigint, verificationPerProof: bigint, protocolTreasury: string, marginBps: bigint, protocolShareBps: bigint, dkgUtilizationBps: bigint, computeUtilizationBps: bigint, decryptUtilizationBps: bigint, minCommitteeSize: bigint, minThreshold: bigint] & { keyGenFixedPerNode: bigint; keyGenPerEncryptionProof: bigint; coordinationPerPair: bigint; availabilityPerNodePerSec: bigint; decryptionPerNode: bigint; publicationBase: bigint; verificationPerProof: bigint; protocolTreasury: string; marginBps: bigint; protocolShareBps: bigint; dkgUtilizationBps: bigint; computeUtilizationBps: bigint; decryptUtilizationBps: bigint; minCommitteeSize: bigint; minThreshold: bigint; }; type E3TimeoutConfigStruct = { dkgWindow: BigNumberish; computeWindow: BigNumberish; decryptionWindow: BigNumberish; }; type E3TimeoutConfigStructOutput = [dkgWindow: bigint, computeWindow: bigint, decryptionWindow: bigint] & { dkgWindow: bigint; computeWindow: bigint; decryptionWindow: bigint; }; type E3DeadlinesStruct = { dkgDeadline: BigNumberish; computeDeadline: BigNumberish; decryptionDeadline: BigNumberish; }; type E3DeadlinesStructOutput = [dkgDeadline: bigint, computeDeadline: bigint, decryptionDeadline: bigint] & { dkgDeadline: bigint; computeDeadline: bigint; decryptionDeadline: bigint; }; type E3RequestParamsStruct = { committeeSize: BigNumberish; inputWindow: [BigNumberish, BigNumberish]; e3Program: AddressLike; paramSet: BigNumberish; computeProviderParams: BytesLike; customParams: BytesLike; proofAggregationEnabled: boolean; }; type E3RequestParamsStructOutput = [committeeSize: bigint, inputWindow: [bigint, bigint], e3Program: string, paramSet: bigint, computeProviderParams: string, customParams: string, proofAggregationEnabled: boolean] & { committeeSize: bigint; inputWindow: [bigint, bigint]; e3Program: string; paramSet: bigint; computeProviderParams: string; customParams: string; proofAggregationEnabled: boolean; }; } export interface IEnclaveInterface extends Interface { getFunction(nameOrSignature: "bondingRegistry" | "checkFailureCondition" | "claimReward" | "claimRewards" | "disableE3Program" | "disableEncryptionScheme" | "enableE3Program" | "escrowSlashedFunds" | "feeToken" | "getDeadlines" | "getDecryptionVerifier" | "getE3" | "getE3Quote" | "getE3Stage" | "getFailureReason" | "getPkVerifier" | "getPricingConfig" | "getRequester" | "getTimeoutConfig" | "isFeeTokenAllowed" | "markE3Failed" | "onCommitteeFinalized" | "onCommitteePublished" | "onE3Failed" | "pendingReward" | "pendingTreasuryClaim" | "processE3Failure" | "publishCiphertextOutput" | "publishPlaintextOutput" | "request" | "setBondingRegistry" | "setCiphernodeRegistry" | "setCommitteeThresholds" | "setDecryptionVerifier" | "setFeeToken" | "setFeeTokenAllowed" | "setMaxDuration" | "setParamSet" | "setPkVerifier" | "setPricingConfig" | "setTimeoutConfig" | "treasuryClaim"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "BondingRegistrySet" | "CiphernodeRegistrySet" | "CiphertextOutputPublished" | "CommitteeFinalized" | "CommitteeFormed" | "CommitteeThresholdsUpdated" | "E3Failed" | "E3FailureProcessed" | "E3ProgramDisabled" | "E3ProgramEnabled" | "E3RefundManagerSet" | "E3Requested" | "E3StageChanged" | "EncryptionSchemeDisabled" | "EncryptionSchemeEnabled" | "FeeTokenAllowed" | "FeeTokenSet" | "InputPublished" | "MaxDurationSet" | "ParamSetRegistered" | "ParamSetUpdated" | "PkVerifierSet" | "PlaintextOutputPublished" | "PricingConfigUpdated" | "RewardClaimed" | "RewardCredited" | "RewardsDistributed" | "SlashedFundsEscrowed" | "SlashingManagerSet" | "TimeoutConfigUpdated" | "TreasuryClaimed" | "TreasuryCredited"): EventFragment; encodeFunctionData(functionFragment: 'bondingRegistry', values?: undefined): string; encodeFunctionData(functionFragment: 'checkFailureCondition', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'claimReward', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'claimRewards', values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: 'disableE3Program', values: [AddressLike]): string; encodeFunctionData(functionFragment: 'disableEncryptionScheme', values: [BytesLike]): string; encodeFunctionData(functionFragment: 'enableE3Program', values: [AddressLike]): string; encodeFunctionData(functionFragment: 'escrowSlashedFunds', values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: 'feeToken', values?: undefined): string; encodeFunctionData(functionFragment: 'getDeadlines', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'getDecryptionVerifier', values: [BytesLike]): string; encodeFunctionData(functionFragment: 'getE3', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'getE3Quote', values: [IEnclave.E3RequestParamsStruct]): string; encodeFunctionData(functionFragment: 'getE3Stage', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'getFailureReason', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'getPkVerifier', values: [BytesLike]): string; encodeFunctionData(functionFragment: 'getPricingConfig', values?: undefined): string; encodeFunctionData(functionFragment: 'getRequester', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'getTimeoutConfig', values?: undefined): string; encodeFunctionData(functionFragment: 'isFeeTokenAllowed', values: [AddressLike]): string; encodeFunctionData(functionFragment: 'markE3Failed', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'onCommitteeFinalized', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'onCommitteePublished', values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: 'onE3Failed', values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: 'pendingReward', values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: 'pendingTreasuryClaim', values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: 'processE3Failure', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'publishCiphertextOutput', values: [BigNumberish, BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: 'publishPlaintextOutput', values: [BigNumberish, BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: 'request', values: [IEnclave.E3RequestParamsStruct]): string; encodeFunctionData(functionFragment: 'setBondingRegistry', values: [AddressLike]): string; encodeFunctionData(functionFragment: 'setCiphernodeRegistry', values: [AddressLike]): string; encodeFunctionData(functionFragment: 'setCommitteeThresholds', values: [BigNumberish, [BigNumberish, BigNumberish]]): string; encodeFunctionData(functionFragment: 'setDecryptionVerifier', values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: 'setFeeToken', values: [AddressLike]): string; encodeFunctionData(functionFragment: 'setFeeTokenAllowed', values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: 'setMaxDuration', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'setParamSet', values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: 'setPkVerifier', values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: 'setPricingConfig', values: [IEnclave.PricingConfigStruct]): string; encodeFunctionData(functionFragment: 'setTimeoutConfig', values: [IEnclave.E3TimeoutConfigStruct]): string; encodeFunctionData(functionFragment: 'treasuryClaim', values: [AddressLike]): string; decodeFunctionResult(functionFragment: 'bondingRegistry', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'checkFailureCondition', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'claimReward', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'claimRewards', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'disableE3Program', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'disableEncryptionScheme', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'enableE3Program', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'escrowSlashedFunds', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'feeToken', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getDeadlines', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getDecryptionVerifier', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getE3', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getE3Quote', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getE3Stage', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getFailureReason', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getPkVerifier', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getPricingConfig', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getRequester', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getTimeoutConfig', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'isFeeTokenAllowed', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'markE3Failed', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'onCommitteeFinalized', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'onCommitteePublished', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'onE3Failed', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pendingReward', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pendingTreasuryClaim', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'processE3Failure', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publishCiphertextOutput', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'publishPlaintextOutput', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'request', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setBondingRegistry', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setCiphernodeRegistry', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setCommitteeThresholds', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setDecryptionVerifier', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setFeeToken', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setFeeTokenAllowed', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setMaxDuration', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setParamSet', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setPkVerifier', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setPricingConfig', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setTimeoutConfig', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'treasuryClaim', data: BytesLike): Result; } export declare namespace BondingRegistrySetEvent { type InputTuple = [bondingRegistry: AddressLike]; type OutputTuple = [bondingRegistry: string]; interface OutputObject { bondingRegistry: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CiphernodeRegistrySetEvent { type InputTuple = [ciphernodeRegistry: AddressLike]; type OutputTuple = [ciphernodeRegistry: string]; interface OutputObject { ciphernodeRegistry: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CiphertextOutputPublishedEvent { type InputTuple = [e3Id: BigNumberish, ciphertextOutput: BytesLike]; type OutputTuple = [e3Id: bigint, ciphertextOutput: string]; interface OutputObject { e3Id: bigint; ciphertextOutput: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CommitteeFinalizedEvent { type InputTuple = [e3Id: BigNumberish]; type OutputTuple = [e3Id: bigint]; interface OutputObject { e3Id: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CommitteeFormedEvent { type InputTuple = [e3Id: BigNumberish]; type OutputTuple = [e3Id: bigint]; interface OutputObject { e3Id: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CommitteeThresholdsUpdatedEvent { type InputTuple = [size: BigNumberish, threshold: [BigNumberish, BigNumberish]]; type OutputTuple = [size: bigint, threshold: [bigint, bigint]]; interface OutputObject { size: bigint; threshold: [bigint, bigint]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace E3FailedEvent { type InputTuple = [e3Id: BigNumberish, failedAtStage: BigNumberish, reason: BigNumberish]; type OutputTuple = [e3Id: bigint, failedAtStage: bigint, reason: bigint]; interface OutputObject { e3Id: bigint; failedAtStage: bigint; reason: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace E3FailureProcessedEvent { type InputTuple = [e3Id: BigNumberish, paymentAmount: BigNumberish, honestNodeCount: BigNumberish]; type OutputTuple = [e3Id: bigint, paymentAmount: bigint, honestNodeCount: bigint]; interface OutputObject { e3Id: bigint; paymentAmount: bigint; honestNodeCount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace E3ProgramDisabledEvent { type InputTuple = [e3Program: AddressLike]; type OutputTuple = [e3Program: string]; interface OutputObject { e3Program: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace E3ProgramEnabledEvent { type InputTuple = [e3Program: AddressLike]; type OutputTuple = [e3Program: string]; interface OutputObject { e3Program: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace E3RefundManagerSetEvent { type InputTuple = [e3RefundManager: AddressLike]; type OutputTuple = [e3RefundManager: string]; interface OutputObject { e3RefundManager: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace E3RequestedEvent { type InputTuple = [e3Id: BigNumberish, e3: E3Struct, e3Program: AddressLike]; type OutputTuple = [e3Id: bigint, e3: E3StructOutput, e3Program: string]; interface OutputObject { e3Id: bigint; e3: E3StructOutput; e3Program: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace E3StageChangedEvent { type InputTuple = [e3Id: BigNumberish, previousStage: BigNumberish, newStage: BigNumberish]; type OutputTuple = [e3Id: bigint, previousStage: bigint, newStage: bigint]; interface OutputObject { e3Id: bigint; previousStage: bigint; newStage: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace EncryptionSchemeDisabledEvent { type InputTuple = [encryptionSchemeId: BytesLike]; type OutputTuple = [encryptionSchemeId: string]; interface OutputObject { encryptionSchemeId: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace EncryptionSchemeEnabledEvent { type InputTuple = [encryptionSchemeId: BytesLike]; type OutputTuple = [encryptionSchemeId: string]; interface OutputObject { encryptionSchemeId: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FeeTokenAllowedEvent { type InputTuple = [token: AddressLike, allowed: boolean]; type OutputTuple = [token: string, allowed: boolean]; interface OutputObject { token: string; allowed: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FeeTokenSetEvent { type InputTuple = [feeToken: AddressLike]; type OutputTuple = [feeToken: string]; interface OutputObject { feeToken: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace InputPublishedEvent { type InputTuple = [e3Id: BigNumberish, data: BytesLike, inputHash: BigNumberish, index: BigNumberish]; type OutputTuple = [e3Id: bigint, data: string, inputHash: bigint, index: bigint]; interface OutputObject { e3Id: bigint; data: string; inputHash: bigint; index: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MaxDurationSetEvent { type InputTuple = [maxDuration: BigNumberish]; type OutputTuple = [maxDuration: bigint]; interface OutputObject { maxDuration: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ParamSetRegisteredEvent { type InputTuple = [paramSet: BigNumberish, encodedParams: BytesLike]; type OutputTuple = [paramSet: bigint, encodedParams: string]; interface OutputObject { paramSet: bigint; encodedParams: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ParamSetUpdatedEvent { type InputTuple = [paramSet: BigNumberish, previousEncodedParams: BytesLike, newEncodedParams: BytesLike]; type OutputTuple = [paramSet: bigint, previousEncodedParams: string, newEncodedParams: string]; interface OutputObject { paramSet: bigint; previousEncodedParams: string; newEncodedParams: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PkVerifierSetEvent { type InputTuple = [encryptionSchemeId: BytesLike, pkVerifier: AddressLike]; type OutputTuple = [encryptionSchemeId: string, pkVerifier: string]; interface OutputObject { encryptionSchemeId: string; pkVerifier: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PlaintextOutputPublishedEvent { type InputTuple = [e3Id: BigNumberish, plaintextOutput: BytesLike, proof: BytesLike]; type OutputTuple = [e3Id: bigint, plaintextOutput: string, proof: string]; interface OutputObject { e3Id: bigint; plaintextOutput: string; proof: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PricingConfigUpdatedEvent { type InputTuple = [config: IEnclave.PricingConfigStruct]; type OutputTuple = [config: IEnclave.PricingConfigStructOutput]; interface OutputObject { config: IEnclave.PricingConfigStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RewardClaimedEvent { type InputTuple = [e3Id: BigNumberish, account: AddressLike, token: AddressLike, amount: BigNumberish]; type OutputTuple = [e3Id: bigint, account: string, token: string, amount: bigint]; interface OutputObject { e3Id: bigint; account: string; token: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RewardCreditedEvent { type InputTuple = [e3Id: BigNumberish, account: AddressLike, token: AddressLike, amount: BigNumberish]; type OutputTuple = [e3Id: bigint, account: string, token: string, amount: bigint]; interface OutputObject { e3Id: bigint; account: string; token: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RewardsDistributedEvent { type InputTuple = [e3Id: BigNumberish, nodes: AddressLike[], amounts: BigNumberish[]]; type OutputTuple = [e3Id: bigint, nodes: string[], amounts: bigint[]]; interface OutputObject { e3Id: bigint; nodes: string[]; amounts: bigint[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SlashedFundsEscrowedEvent { type InputTuple = [e3Id: BigNumberish, amount: BigNumberish]; type OutputTuple = [e3Id: bigint, amount: bigint]; interface OutputObject { e3Id: bigint; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SlashingManagerSetEvent { type InputTuple = [slashingManager: AddressLike]; type OutputTuple = [slashingManager: string]; interface OutputObject { slashingManager: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TimeoutConfigUpdatedEvent { type InputTuple = [config: IEnclave.E3TimeoutConfigStruct]; type OutputTuple = [config: IEnclave.E3TimeoutConfigStructOutput]; interface OutputObject { config: IEnclave.E3TimeoutConfigStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TreasuryClaimedEvent { type InputTuple = [treasury: AddressLike, token: AddressLike, amount: BigNumberish]; type OutputTuple = [treasury: string, token: string, amount: bigint]; interface OutputObject { treasury: string; token: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TreasuryCreditedEvent { type InputTuple = [e3Id: BigNumberish, treasury: AddressLike, token: AddressLike, amount: BigNumberish]; type OutputTuple = [e3Id: bigint, treasury: string, token: string, amount: bigint]; interface OutputObject { e3Id: bigint; treasury: string; token: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IEnclave extends BaseContract { connect(runner?: ContractRunner | null): IEnclave; waitForDeployment(): Promise; interface: IEnclaveInterface; 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; bondingRegistry: TypedContractMethod<[ ], [ string ], 'view'>; checkFailureCondition: TypedContractMethod<[ e3Id: BigNumberish ], [ [boolean, bigint] & { canFail: boolean; reason: bigint; } ], 'view'>; claimReward: TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; claimRewards: TypedContractMethod<[ e3Ids: BigNumberish[] ], [ void ], 'nonpayable'>; disableE3Program: TypedContractMethod<[ e3Program: AddressLike ], [ void ], 'nonpayable'>; disableEncryptionScheme: TypedContractMethod<[ encryptionSchemeId: BytesLike ], [ void ], 'nonpayable'>; enableE3Program: TypedContractMethod<[ e3Program: AddressLike ], [ void ], 'nonpayable'>; escrowSlashedFunds: TypedContractMethod<[ e3Id: BigNumberish, amount: BigNumberish ], [ void ], 'nonpayable'>; feeToken: TypedContractMethod<[ ], [ string ], 'view'>; getDeadlines: TypedContractMethod<[ e3Id: BigNumberish ], [ IEnclave.E3DeadlinesStructOutput ], 'view'>; getDecryptionVerifier: TypedContractMethod<[ encryptionSchemeId: BytesLike ], [ string ], 'view'>; getE3: TypedContractMethod<[ e3Id: BigNumberish ], [ E3StructOutput ], 'view'>; getE3Quote: TypedContractMethod<[ e3Params: IEnclave.E3RequestParamsStruct ], [ bigint ], 'view'>; getE3Stage: TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'view'>; getFailureReason: TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'view'>; getPkVerifier: TypedContractMethod<[ encryptionSchemeId: BytesLike ], [ string ], 'view'>; getPricingConfig: TypedContractMethod<[ ], [ IEnclave.PricingConfigStructOutput ], 'view'>; getRequester: TypedContractMethod<[ e3Id: BigNumberish ], [ string ], 'view'>; getTimeoutConfig: TypedContractMethod<[ ], [ IEnclave.E3TimeoutConfigStructOutput ], 'view'>; isFeeTokenAllowed: TypedContractMethod<[ token: AddressLike ], [ boolean ], 'view'>; markE3Failed: TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; onCommitteeFinalized: TypedContractMethod<[ e3Id: BigNumberish ], [ void ], 'nonpayable'>; onCommitteePublished: TypedContractMethod<[ e3Id: BigNumberish, committeePublicKey: BytesLike ], [ void ], 'nonpayable'>; onE3Failed: TypedContractMethod<[ e3Id: BigNumberish, reason: BigNumberish ], [ void ], 'nonpayable'>; pendingReward: TypedContractMethod<[ e3Id: BigNumberish, account: AddressLike ], [ bigint ], 'view'>; pendingTreasuryClaim: TypedContractMethod<[ treasury: AddressLike, token: AddressLike ], [ bigint ], 'view'>; processE3Failure: TypedContractMethod<[ e3Id: BigNumberish ], [ void ], 'nonpayable'>; publishCiphertextOutput: TypedContractMethod<[ e3Id: BigNumberish, ciphertextOutput: BytesLike, proof: BytesLike ], [ boolean ], 'nonpayable'>; publishPlaintextOutput: TypedContractMethod<[ e3Id: BigNumberish, plaintextOutput: BytesLike, proof: BytesLike ], [ boolean ], 'nonpayable'>; request: TypedContractMethod<[ requestParams: IEnclave.E3RequestParamsStruct ], [ [bigint, E3StructOutput] & { e3Id: bigint; e3: E3StructOutput; } ], 'nonpayable'>; setBondingRegistry: TypedContractMethod<[ _bondingRegistry: AddressLike ], [ void ], 'nonpayable'>; setCiphernodeRegistry: TypedContractMethod<[ _ciphernodeRegistry: AddressLike ], [ void ], 'nonpayable'>; setCommitteeThresholds: TypedContractMethod<[ size: BigNumberish, threshold: [BigNumberish, BigNumberish] ], [ void ], 'nonpayable'>; setDecryptionVerifier: TypedContractMethod<[ encryptionSchemeId: BytesLike, decryptionVerifier: AddressLike ], [ void ], 'nonpayable'>; setFeeToken: TypedContractMethod<[ _feeToken: AddressLike ], [ void ], 'nonpayable'>; setFeeTokenAllowed: TypedContractMethod<[ token: AddressLike, allowed: boolean ], [ void ], 'nonpayable'>; setMaxDuration: TypedContractMethod<[ _maxDuration: BigNumberish ], [ void ], 'nonpayable'>; setParamSet: TypedContractMethod<[ paramSet: BigNumberish, encodedParams: BytesLike ], [ void ], 'nonpayable'>; setPkVerifier: TypedContractMethod<[ encryptionSchemeId: BytesLike, pkVerifier: AddressLike ], [ void ], 'nonpayable'>; setPricingConfig: TypedContractMethod<[ config: IEnclave.PricingConfigStruct ], [ void ], 'nonpayable'>; setTimeoutConfig: TypedContractMethod<[ config: IEnclave.E3TimeoutConfigStruct ], [ void ], 'nonpayable'>; treasuryClaim: TypedContractMethod<[ token: AddressLike ], [ bigint ], 'nonpayable'>; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: 'bondingRegistry'): TypedContractMethod<[ ], [ string ], 'view'>; getFunction(nameOrSignature: 'checkFailureCondition'): TypedContractMethod<[ e3Id: BigNumberish ], [ [boolean, bigint] & { canFail: boolean; reason: bigint; } ], 'view'>; getFunction(nameOrSignature: 'claimReward'): TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; getFunction(nameOrSignature: 'claimRewards'): TypedContractMethod<[ e3Ids: BigNumberish[] ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'disableE3Program'): TypedContractMethod<[ e3Program: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'disableEncryptionScheme'): TypedContractMethod<[ encryptionSchemeId: BytesLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'enableE3Program'): TypedContractMethod<[ e3Program: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'escrowSlashedFunds'): TypedContractMethod<[ e3Id: BigNumberish, amount: BigNumberish ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'feeToken'): TypedContractMethod<[ ], [ string ], 'view'>; getFunction(nameOrSignature: 'getDeadlines'): TypedContractMethod<[ e3Id: BigNumberish ], [ IEnclave.E3DeadlinesStructOutput ], 'view'>; getFunction(nameOrSignature: 'getDecryptionVerifier'): TypedContractMethod<[ encryptionSchemeId: BytesLike ], [ string ], 'view'>; getFunction(nameOrSignature: 'getE3'): TypedContractMethod<[ e3Id: BigNumberish ], [ E3StructOutput ], 'view'>; getFunction(nameOrSignature: 'getE3Quote'): TypedContractMethod<[ e3Params: IEnclave.E3RequestParamsStruct ], [ bigint ], 'view'>; getFunction(nameOrSignature: 'getE3Stage'): TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'view'>; getFunction(nameOrSignature: 'getFailureReason'): TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'view'>; getFunction(nameOrSignature: 'getPkVerifier'): TypedContractMethod<[ encryptionSchemeId: BytesLike ], [ string ], 'view'>; getFunction(nameOrSignature: 'getPricingConfig'): TypedContractMethod<[ ], [ IEnclave.PricingConfigStructOutput ], 'view'>; getFunction(nameOrSignature: 'getRequester'): TypedContractMethod<[ e3Id: BigNumberish ], [ string ], 'view'>; getFunction(nameOrSignature: 'getTimeoutConfig'): TypedContractMethod<[ ], [ IEnclave.E3TimeoutConfigStructOutput ], 'view'>; getFunction(nameOrSignature: 'isFeeTokenAllowed'): TypedContractMethod<[ token: AddressLike ], [ boolean ], 'view'>; getFunction(nameOrSignature: 'markE3Failed'): TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; getFunction(nameOrSignature: 'onCommitteeFinalized'): TypedContractMethod<[ e3Id: BigNumberish ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'onCommitteePublished'): TypedContractMethod<[ e3Id: BigNumberish, committeePublicKey: BytesLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'onE3Failed'): TypedContractMethod<[ e3Id: BigNumberish, reason: BigNumberish ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'pendingReward'): TypedContractMethod<[ e3Id: BigNumberish, account: AddressLike ], [ bigint ], 'view'>; getFunction(nameOrSignature: 'pendingTreasuryClaim'): TypedContractMethod<[ treasury: AddressLike, token: AddressLike ], [ bigint ], 'view'>; getFunction(nameOrSignature: 'processE3Failure'): TypedContractMethod<[ e3Id: BigNumberish ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'publishCiphertextOutput'): TypedContractMethod<[ e3Id: BigNumberish, ciphertextOutput: BytesLike, proof: BytesLike ], [ boolean ], 'nonpayable'>; getFunction(nameOrSignature: 'publishPlaintextOutput'): TypedContractMethod<[ e3Id: BigNumberish, plaintextOutput: BytesLike, proof: BytesLike ], [ boolean ], 'nonpayable'>; getFunction(nameOrSignature: 'request'): TypedContractMethod<[ requestParams: IEnclave.E3RequestParamsStruct ], [ [bigint, E3StructOutput] & { e3Id: bigint; e3: E3StructOutput; } ], 'nonpayable'>; getFunction(nameOrSignature: 'setBondingRegistry'): TypedContractMethod<[ _bondingRegistry: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setCiphernodeRegistry'): TypedContractMethod<[ _ciphernodeRegistry: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setCommitteeThresholds'): TypedContractMethod<[ size: BigNumberish, threshold: [BigNumberish, BigNumberish] ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setDecryptionVerifier'): TypedContractMethod<[ encryptionSchemeId: BytesLike, decryptionVerifier: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setFeeToken'): TypedContractMethod<[ _feeToken: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setFeeTokenAllowed'): TypedContractMethod<[ token: AddressLike, allowed: boolean ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setMaxDuration'): TypedContractMethod<[ _maxDuration: BigNumberish ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setParamSet'): TypedContractMethod<[ paramSet: BigNumberish, encodedParams: BytesLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setPkVerifier'): TypedContractMethod<[ encryptionSchemeId: BytesLike, pkVerifier: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setPricingConfig'): TypedContractMethod<[ config: IEnclave.PricingConfigStruct ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'setTimeoutConfig'): TypedContractMethod<[ config: IEnclave.E3TimeoutConfigStruct ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'treasuryClaim'): TypedContractMethod<[ token: AddressLike ], [ bigint ], 'nonpayable'>; getEvent(key: 'BondingRegistrySet'): TypedContractEvent; getEvent(key: 'CiphernodeRegistrySet'): TypedContractEvent; getEvent(key: 'CiphertextOutputPublished'): TypedContractEvent; getEvent(key: 'CommitteeFinalized'): TypedContractEvent; getEvent(key: 'CommitteeFormed'): TypedContractEvent; getEvent(key: 'CommitteeThresholdsUpdated'): TypedContractEvent; getEvent(key: 'E3Failed'): TypedContractEvent; getEvent(key: 'E3FailureProcessed'): TypedContractEvent; getEvent(key: 'E3ProgramDisabled'): TypedContractEvent; getEvent(key: 'E3ProgramEnabled'): TypedContractEvent; getEvent(key: 'E3RefundManagerSet'): TypedContractEvent; getEvent(key: 'E3Requested'): TypedContractEvent; getEvent(key: 'E3StageChanged'): TypedContractEvent; getEvent(key: 'EncryptionSchemeDisabled'): TypedContractEvent; getEvent(key: 'EncryptionSchemeEnabled'): TypedContractEvent; getEvent(key: 'FeeTokenAllowed'): TypedContractEvent; getEvent(key: 'FeeTokenSet'): TypedContractEvent; getEvent(key: 'InputPublished'): TypedContractEvent; getEvent(key: 'MaxDurationSet'): TypedContractEvent; getEvent(key: 'ParamSetRegistered'): TypedContractEvent; getEvent(key: 'ParamSetUpdated'): TypedContractEvent; getEvent(key: 'PkVerifierSet'): TypedContractEvent; getEvent(key: 'PlaintextOutputPublished'): TypedContractEvent; getEvent(key: 'PricingConfigUpdated'): TypedContractEvent; getEvent(key: 'RewardClaimed'): TypedContractEvent; getEvent(key: 'RewardCredited'): TypedContractEvent; getEvent(key: 'RewardsDistributed'): TypedContractEvent; getEvent(key: 'SlashedFundsEscrowed'): TypedContractEvent; getEvent(key: 'SlashingManagerSet'): TypedContractEvent; getEvent(key: 'TimeoutConfigUpdated'): TypedContractEvent; getEvent(key: 'TreasuryClaimed'): TypedContractEvent; getEvent(key: 'TreasuryCredited'): TypedContractEvent; filters: { 'BondingRegistrySet(address)': TypedContractEvent; BondingRegistrySet: TypedContractEvent; 'CiphernodeRegistrySet(address)': TypedContractEvent; CiphernodeRegistrySet: TypedContractEvent; 'CiphertextOutputPublished(uint256,bytes)': TypedContractEvent; CiphertextOutputPublished: TypedContractEvent; 'CommitteeFinalized(uint256)': TypedContractEvent; CommitteeFinalized: TypedContractEvent; 'CommitteeFormed(uint256)': TypedContractEvent; CommitteeFormed: TypedContractEvent; 'CommitteeThresholdsUpdated(uint8,uint32[2])': TypedContractEvent; CommitteeThresholdsUpdated: TypedContractEvent; 'E3Failed(uint256,uint8,uint8)': TypedContractEvent; E3Failed: TypedContractEvent; 'E3FailureProcessed(uint256,uint256,uint256)': TypedContractEvent; E3FailureProcessed: TypedContractEvent; 'E3ProgramDisabled(address)': TypedContractEvent; E3ProgramDisabled: TypedContractEvent; 'E3ProgramEnabled(address)': TypedContractEvent; E3ProgramEnabled: TypedContractEvent; 'E3RefundManagerSet(address)': TypedContractEvent; E3RefundManagerSet: TypedContractEvent; 'E3Requested(uint256,tuple,address)': TypedContractEvent; E3Requested: TypedContractEvent; 'E3StageChanged(uint256,uint8,uint8)': TypedContractEvent; E3StageChanged: TypedContractEvent; 'EncryptionSchemeDisabled(bytes32)': TypedContractEvent; EncryptionSchemeDisabled: TypedContractEvent; 'EncryptionSchemeEnabled(bytes32)': TypedContractEvent; EncryptionSchemeEnabled: TypedContractEvent; 'FeeTokenAllowed(address,bool)': TypedContractEvent; FeeTokenAllowed: TypedContractEvent; 'FeeTokenSet(address)': TypedContractEvent; FeeTokenSet: TypedContractEvent; 'InputPublished(uint256,bytes,uint256,uint256)': TypedContractEvent; InputPublished: TypedContractEvent; 'MaxDurationSet(uint256)': TypedContractEvent; MaxDurationSet: TypedContractEvent; 'ParamSetRegistered(uint8,bytes)': TypedContractEvent; ParamSetRegistered: TypedContractEvent; 'ParamSetUpdated(uint8,bytes,bytes)': TypedContractEvent; ParamSetUpdated: TypedContractEvent; 'PkVerifierSet(bytes32,address)': TypedContractEvent; PkVerifierSet: TypedContractEvent; 'PlaintextOutputPublished(uint256,bytes,bytes)': TypedContractEvent; PlaintextOutputPublished: TypedContractEvent; 'PricingConfigUpdated(tuple)': TypedContractEvent; PricingConfigUpdated: TypedContractEvent; 'RewardClaimed(uint256,address,address,uint256)': TypedContractEvent; RewardClaimed: TypedContractEvent; 'RewardCredited(uint256,address,address,uint256)': TypedContractEvent; RewardCredited: TypedContractEvent; 'RewardsDistributed(uint256,address[],uint256[])': TypedContractEvent; RewardsDistributed: TypedContractEvent; 'SlashedFundsEscrowed(uint256,uint256)': TypedContractEvent; SlashedFundsEscrowed: TypedContractEvent; 'SlashingManagerSet(address)': TypedContractEvent; SlashingManagerSet: TypedContractEvent; 'TimeoutConfigUpdated(tuple)': TypedContractEvent; TimeoutConfigUpdated: TypedContractEvent; 'TreasuryClaimed(address,address,uint256)': TypedContractEvent; TreasuryClaimed: TypedContractEvent; 'TreasuryCredited(uint256,address,address,uint256)': TypedContractEvent; TreasuryCredited: TypedContractEvent; }; } //# sourceMappingURL=IEnclave.d.ts.map