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 declare namespace IE3RefundManager { type WorkValueAllocationStruct = { committeeFormationBps: BigNumberish; dkgBps: BigNumberish; decryptionBps: BigNumberish; protocolBps: BigNumberish; successSlashedNodeBps: BigNumberish; }; type WorkValueAllocationStructOutput = [committeeFormationBps: bigint, dkgBps: bigint, decryptionBps: bigint, protocolBps: bigint, successSlashedNodeBps: bigint] & { committeeFormationBps: bigint; dkgBps: bigint; decryptionBps: bigint; protocolBps: bigint; successSlashedNodeBps: bigint; }; type RefundDistributionStruct = { requesterAmount: BigNumberish; honestNodeAmount: BigNumberish; protocolAmount: BigNumberish; totalSlashed: BigNumberish; honestNodeCount: BigNumberish; calculated: boolean; feeToken: AddressLike; originalPayment: BigNumberish; perNodeAmount: BigNumberish; }; type RefundDistributionStructOutput = [requesterAmount: bigint, honestNodeAmount: bigint, protocolAmount: bigint, totalSlashed: bigint, honestNodeCount: bigint, calculated: boolean, feeToken: string, originalPayment: bigint, perNodeAmount: bigint] & { requesterAmount: bigint; honestNodeAmount: bigint; protocolAmount: bigint; totalSlashed: bigint; honestNodeCount: bigint; calculated: boolean; feeToken: string; originalPayment: bigint; perNodeAmount: bigint; }; } export interface IE3RefundManagerInterface extends Interface { getFunction(nameOrSignature: "calculateRefund" | "calculateWorkValue" | "claimHonestNodeReward" | "claimRequesterRefund" | "claimSlashedFundsOnSuccess" | "claimSlashedFundsOnSuccessBatch" | "distributeSlashedFundsOnSuccess" | "escrowSlashedFunds" | "getRefundDistribution" | "getWorkAllocation" | "hasClaimed" | "pendingSlashedFundsOnSuccess" | "pendingTreasuryClaim" | "setWorkAllocation" | "treasuryClaim"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "EnclaveSet" | "OrphanedSlashedFundsWithdrawn" | "RefundClaimed" | "RefundDistributionCalculated" | "SlashedFundsApplied" | "SlashedFundsClaimed" | "SlashedFundsCredited" | "SlashedFundsDistributedOnSuccess" | "SlashedFundsEscrowed" | "TreasurySet" | "TreasurySlashedClaimed" | "TreasurySlashedCredited" | "WorkAllocationUpdated"): EventFragment; encodeFunctionData(functionFragment: 'calculateRefund', values: [BigNumberish, BigNumberish, AddressLike[], AddressLike]): string; encodeFunctionData(functionFragment: 'calculateWorkValue', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'claimHonestNodeReward', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'claimRequesterRefund', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'claimSlashedFundsOnSuccess', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'claimSlashedFundsOnSuccessBatch', values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: 'distributeSlashedFundsOnSuccess', values: [BigNumberish, AddressLike[], AddressLike]): string; encodeFunctionData(functionFragment: 'escrowSlashedFunds', values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: 'getRefundDistribution', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'getWorkAllocation', values?: undefined): string; encodeFunctionData(functionFragment: 'hasClaimed', values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: 'pendingSlashedFundsOnSuccess', values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: 'pendingTreasuryClaim', values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: 'setWorkAllocation', values: [IE3RefundManager.WorkValueAllocationStruct]): string; encodeFunctionData(functionFragment: 'treasuryClaim', values: [AddressLike]): string; decodeFunctionResult(functionFragment: 'calculateRefund', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'calculateWorkValue', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'claimHonestNodeReward', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'claimRequesterRefund', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'claimSlashedFundsOnSuccess', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'claimSlashedFundsOnSuccessBatch', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'distributeSlashedFundsOnSuccess', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'escrowSlashedFunds', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getRefundDistribution', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getWorkAllocation', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'hasClaimed', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pendingSlashedFundsOnSuccess', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'pendingTreasuryClaim', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setWorkAllocation', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'treasuryClaim', data: BytesLike): Result; } export declare namespace EnclaveSetEvent { type InputTuple = [enclave: AddressLike]; type OutputTuple = [enclave: string]; interface OutputObject { enclave: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OrphanedSlashedFundsWithdrawnEvent { 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 RefundClaimedEvent { type InputTuple = [e3Id: BigNumberish, claimant: AddressLike, amount: BigNumberish, claimType: BytesLike]; type OutputTuple = [e3Id: bigint, claimant: string, amount: bigint, claimType: string]; interface OutputObject { e3Id: bigint; claimant: string; amount: bigint; claimType: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RefundDistributionCalculatedEvent { type InputTuple = [e3Id: BigNumberish, requesterAmount: BigNumberish, honestNodeAmount: BigNumberish, protocolAmount: BigNumberish, totalSlashed: BigNumberish]; type OutputTuple = [e3Id: bigint, requesterAmount: bigint, honestNodeAmount: bigint, protocolAmount: bigint, totalSlashed: bigint]; interface OutputObject { e3Id: bigint; requesterAmount: bigint; honestNodeAmount: bigint; protocolAmount: bigint; totalSlashed: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SlashedFundsAppliedEvent { type InputTuple = [e3Id: BigNumberish, toRequester: BigNumberish, toHonestNodes: BigNumberish]; type OutputTuple = [e3Id: bigint, toRequester: bigint, toHonestNodes: bigint]; interface OutputObject { e3Id: bigint; toRequester: bigint; toHonestNodes: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SlashedFundsClaimedEvent { 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 SlashedFundsCreditedEvent { 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 SlashedFundsDistributedOnSuccessEvent { type InputTuple = [e3Id: BigNumberish, toNodes: BigNumberish, toProtocol: BigNumberish]; type OutputTuple = [e3Id: bigint, toNodes: bigint, toProtocol: bigint]; interface OutputObject { e3Id: bigint; toNodes: bigint; toProtocol: 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 TreasurySetEvent { type InputTuple = [treasury: AddressLike]; type OutputTuple = [treasury: string]; interface OutputObject { treasury: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TreasurySlashedClaimedEvent { 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 TreasurySlashedCreditedEvent { 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 WorkAllocationUpdatedEvent { type InputTuple = [allocation: IE3RefundManager.WorkValueAllocationStruct]; type OutputTuple = [allocation: IE3RefundManager.WorkValueAllocationStructOutput]; interface OutputObject { allocation: IE3RefundManager.WorkValueAllocationStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IE3RefundManager extends BaseContract { connect(runner?: ContractRunner | null): IE3RefundManager; waitForDeployment(): Promise; interface: IE3RefundManagerInterface; 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; calculateRefund: TypedContractMethod<[ e3Id: BigNumberish, originalPayment: BigNumberish, honestNodes: AddressLike[], paymentToken: AddressLike ], [ void ], 'nonpayable'>; calculateWorkValue: TypedContractMethod<[ stage: BigNumberish ], [ [bigint, bigint] & { workCompletedBps: bigint; workRemainingBps: bigint; } ], 'view'>; claimHonestNodeReward: TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; claimRequesterRefund: TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; claimSlashedFundsOnSuccess: TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; claimSlashedFundsOnSuccessBatch: TypedContractMethod<[ e3Ids: BigNumberish[] ], [ void ], 'nonpayable'>; distributeSlashedFundsOnSuccess: TypedContractMethod<[ e3Id: BigNumberish, honestNodes: AddressLike[], paymentToken: AddressLike ], [ void ], 'nonpayable'>; escrowSlashedFunds: TypedContractMethod<[ e3Id: BigNumberish, amount: BigNumberish ], [ void ], 'nonpayable'>; getRefundDistribution: TypedContractMethod<[ e3Id: BigNumberish ], [ IE3RefundManager.RefundDistributionStructOutput ], 'view'>; getWorkAllocation: TypedContractMethod<[ ], [ IE3RefundManager.WorkValueAllocationStructOutput ], 'view'>; hasClaimed: TypedContractMethod<[ e3Id: BigNumberish, claimant: AddressLike ], [ boolean ], 'view'>; pendingSlashedFundsOnSuccess: TypedContractMethod<[ e3Id: BigNumberish, account: AddressLike ], [ bigint ], 'view'>; pendingTreasuryClaim: TypedContractMethod<[ treasury: AddressLike, token: AddressLike ], [ bigint ], 'view'>; setWorkAllocation: TypedContractMethod<[ allocation: IE3RefundManager.WorkValueAllocationStruct ], [ void ], 'nonpayable'>; treasuryClaim: TypedContractMethod<[ token: AddressLike ], [ bigint ], 'nonpayable'>; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: 'calculateRefund'): TypedContractMethod<[ e3Id: BigNumberish, originalPayment: BigNumberish, honestNodes: AddressLike[], paymentToken: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'calculateWorkValue'): TypedContractMethod<[ stage: BigNumberish ], [ [bigint, bigint] & { workCompletedBps: bigint; workRemainingBps: bigint; } ], 'view'>; getFunction(nameOrSignature: 'claimHonestNodeReward'): TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; getFunction(nameOrSignature: 'claimRequesterRefund'): TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; getFunction(nameOrSignature: 'claimSlashedFundsOnSuccess'): TypedContractMethod<[ e3Id: BigNumberish ], [ bigint ], 'nonpayable'>; getFunction(nameOrSignature: 'claimSlashedFundsOnSuccessBatch'): TypedContractMethod<[ e3Ids: BigNumberish[] ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'distributeSlashedFundsOnSuccess'): TypedContractMethod<[ e3Id: BigNumberish, honestNodes: AddressLike[], paymentToken: AddressLike ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'escrowSlashedFunds'): TypedContractMethod<[ e3Id: BigNumberish, amount: BigNumberish ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'getRefundDistribution'): TypedContractMethod<[ e3Id: BigNumberish ], [ IE3RefundManager.RefundDistributionStructOutput ], 'view'>; getFunction(nameOrSignature: 'getWorkAllocation'): TypedContractMethod<[ ], [ IE3RefundManager.WorkValueAllocationStructOutput ], 'view'>; getFunction(nameOrSignature: 'hasClaimed'): TypedContractMethod<[ e3Id: BigNumberish, claimant: AddressLike ], [ boolean ], 'view'>; getFunction(nameOrSignature: 'pendingSlashedFundsOnSuccess'): TypedContractMethod<[ e3Id: BigNumberish, account: AddressLike ], [ bigint ], 'view'>; getFunction(nameOrSignature: 'pendingTreasuryClaim'): TypedContractMethod<[ treasury: AddressLike, token: AddressLike ], [ bigint ], 'view'>; getFunction(nameOrSignature: 'setWorkAllocation'): TypedContractMethod<[ allocation: IE3RefundManager.WorkValueAllocationStruct ], [ void ], 'nonpayable'>; getFunction(nameOrSignature: 'treasuryClaim'): TypedContractMethod<[ token: AddressLike ], [ bigint ], 'nonpayable'>; getEvent(key: 'EnclaveSet'): TypedContractEvent; getEvent(key: 'OrphanedSlashedFundsWithdrawn'): TypedContractEvent; getEvent(key: 'RefundClaimed'): TypedContractEvent; getEvent(key: 'RefundDistributionCalculated'): TypedContractEvent; getEvent(key: 'SlashedFundsApplied'): TypedContractEvent; getEvent(key: 'SlashedFundsClaimed'): TypedContractEvent; getEvent(key: 'SlashedFundsCredited'): TypedContractEvent; getEvent(key: 'SlashedFundsDistributedOnSuccess'): TypedContractEvent; getEvent(key: 'SlashedFundsEscrowed'): TypedContractEvent; getEvent(key: 'TreasurySet'): TypedContractEvent; getEvent(key: 'TreasurySlashedClaimed'): TypedContractEvent; getEvent(key: 'TreasurySlashedCredited'): TypedContractEvent; getEvent(key: 'WorkAllocationUpdated'): TypedContractEvent; filters: { 'EnclaveSet(address)': TypedContractEvent; EnclaveSet: TypedContractEvent; 'OrphanedSlashedFundsWithdrawn(uint256,uint256)': TypedContractEvent; OrphanedSlashedFundsWithdrawn: TypedContractEvent; 'RefundClaimed(uint256,address,uint256,bytes32)': TypedContractEvent; RefundClaimed: TypedContractEvent; 'RefundDistributionCalculated(uint256,uint256,uint256,uint256,uint256)': TypedContractEvent; RefundDistributionCalculated: TypedContractEvent; 'SlashedFundsApplied(uint256,uint256,uint256)': TypedContractEvent; SlashedFundsApplied: TypedContractEvent; 'SlashedFundsClaimed(uint256,address,address,uint256)': TypedContractEvent; SlashedFundsClaimed: TypedContractEvent; 'SlashedFundsCredited(uint256,address,address,uint256)': TypedContractEvent; SlashedFundsCredited: TypedContractEvent; 'SlashedFundsDistributedOnSuccess(uint256,uint256,uint256)': TypedContractEvent; SlashedFundsDistributedOnSuccess: TypedContractEvent; 'SlashedFundsEscrowed(uint256,uint256)': TypedContractEvent; SlashedFundsEscrowed: TypedContractEvent; 'TreasurySet(address)': TypedContractEvent; TreasurySet: TypedContractEvent; 'TreasurySlashedClaimed(address,address,uint256)': TypedContractEvent; TreasurySlashedClaimed: TypedContractEvent; 'TreasurySlashedCredited(address,address,uint256)': TypedContractEvent; TreasurySlashedCredited: TypedContractEvent; 'WorkAllocationUpdated(tuple)': TypedContractEvent; WorkAllocationUpdated: TypedContractEvent; }; } //# sourceMappingURL=IE3RefundManager.d.ts.map