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 interface UsulInterface extends Interface { getFunction(nameOrSignature: "DOMAIN_SEPARATOR_TYPEHASH" | "TRANSACTION_TYPEHASH" | "avatar" | "cancelProposals" | "disableStrategy" | "enableStrategy" | "executeProposalBatch" | "executeProposalByIndex" | "generateTransactionHashData" | "getGuard" | "getStrategiesPaginated" | "getTransactionHash" | "getTxHash" | "guard" | "isStrategyEnabled" | "isTxExecuted" | "owner" | "proposals" | "receiveStrategy" | "renounceOwnership" | "setAvatar" | "setGuard" | "setTarget" | "setUp" | "state" | "submitProposal" | "target" | "totalProposalCount" | "transferOwnership"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AvatarSet" | "ChangedGuard" | "DisabledStrategy" | "EnabledStrategy" | "OwnershipTransferred" | "ProposalCanceled" | "ProposalCreated" | "ProposalExecuted" | "StrategyFinalized" | "TargetSet" | "TransactionExecuted" | "TransactionExecutedBatch" | "UsulSetup"): EventFragment; encodeFunctionData(functionFragment: "DOMAIN_SEPARATOR_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "TRANSACTION_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "avatar", values?: undefined): string; encodeFunctionData(functionFragment: "cancelProposals", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "disableStrategy", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "enableStrategy", values: [AddressLike]): string; encodeFunctionData(functionFragment: "executeProposalBatch", values: [ BigNumberish, AddressLike[], BigNumberish[], BytesLike[], BigNumberish[] ]): string; encodeFunctionData(functionFragment: "executeProposalByIndex", values: [BigNumberish, AddressLike, BigNumberish, BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "generateTransactionHashData", values: [AddressLike, BigNumberish, BytesLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getGuard", values?: undefined): string; encodeFunctionData(functionFragment: "getStrategiesPaginated", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "getTransactionHash", values: [AddressLike, BigNumberish, BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "getTxHash", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "guard", values?: undefined): string; encodeFunctionData(functionFragment: "isStrategyEnabled", values: [AddressLike]): string; encodeFunctionData(functionFragment: "isTxExecuted", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "proposals", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "receiveStrategy", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "setAvatar", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setGuard", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setTarget", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setUp", values: [BytesLike]): string; encodeFunctionData(functionFragment: "state", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "submitProposal", values: [BytesLike[], AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "target", values?: undefined): string; encodeFunctionData(functionFragment: "totalProposalCount", values?: undefined): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "DOMAIN_SEPARATOR_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "TRANSACTION_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "avatar", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelProposals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "disableStrategy", data: BytesLike): Result; decodeFunctionResult(functionFragment: "enableStrategy", data: BytesLike): Result; decodeFunctionResult(functionFragment: "executeProposalBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "executeProposalByIndex", data: BytesLike): Result; decodeFunctionResult(functionFragment: "generateTransactionHashData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGuard", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStrategiesPaginated", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTransactionHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTxHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "guard", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isStrategyEnabled", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isTxExecuted", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proposals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "receiveStrategy", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setAvatar", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setGuard", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setTarget", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setUp", data: BytesLike): Result; decodeFunctionResult(functionFragment: "state", data: BytesLike): Result; decodeFunctionResult(functionFragment: "submitProposal", data: BytesLike): Result; decodeFunctionResult(functionFragment: "target", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalProposalCount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; } export declare namespace AvatarSetEvent { type InputTuple = [ previousAvatar: AddressLike, newAvatar: AddressLike ]; type OutputTuple = [previousAvatar: string, newAvatar: string]; interface OutputObject { previousAvatar: string; newAvatar: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ChangedGuardEvent { type InputTuple = [guard: AddressLike]; type OutputTuple = [guard: string]; interface OutputObject { guard: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DisabledStrategyEvent { type InputTuple = [strategy: AddressLike]; type OutputTuple = [strategy: string]; interface OutputObject { strategy: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace EnabledStrategyEvent { type InputTuple = [strategy: AddressLike]; type OutputTuple = [strategy: string]; interface OutputObject { strategy: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferredEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProposalCanceledEvent { type InputTuple = [proposalId: BigNumberish]; type OutputTuple = [proposalId: bigint]; interface OutputObject { proposalId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProposalCreatedEvent { type InputTuple = [ strategy: AddressLike, proposalNumber: BigNumberish, proposer: AddressLike ]; type OutputTuple = [ strategy: string, proposalNumber: bigint, proposer: string ]; interface OutputObject { strategy: string; proposalNumber: bigint; proposer: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProposalExecutedEvent { type InputTuple = [id: BigNumberish]; type OutputTuple = [id: bigint]; interface OutputObject { id: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace StrategyFinalizedEvent { type InputTuple = [proposalId: BigNumberish, endDate: BigNumberish]; type OutputTuple = [proposalId: bigint, endDate: bigint]; interface OutputObject { proposalId: bigint; endDate: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TargetSetEvent { type InputTuple = [ previousTarget: AddressLike, newTarget: AddressLike ]; type OutputTuple = [previousTarget: string, newTarget: string]; interface OutputObject { previousTarget: string; newTarget: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransactionExecutedEvent { type InputTuple = [proposalId: BigNumberish, txHash: BytesLike]; type OutputTuple = [proposalId: bigint, txHash: string]; interface OutputObject { proposalId: bigint; txHash: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransactionExecutedBatchEvent { type InputTuple = [startIndex: BigNumberish, endIndex: BigNumberish]; type OutputTuple = [startIndex: bigint, endIndex: bigint]; interface OutputObject { startIndex: bigint; endIndex: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UsulSetupEvent { type InputTuple = [ initiator: AddressLike, owner: AddressLike, avatar: AddressLike, target: AddressLike ]; type OutputTuple = [ initiator: string, owner: string, avatar: string, target: string ]; interface OutputObject { initiator: string; owner: string; avatar: string; target: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface Usul extends BaseContract { connect(runner?: ContractRunner | null): Usul; waitForDeployment(): Promise; interface: UsulInterface; 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; DOMAIN_SEPARATOR_TYPEHASH: TypedContractMethod<[], [string], "view">; TRANSACTION_TYPEHASH: TypedContractMethod<[], [string], "view">; avatar: TypedContractMethod<[], [string], "view">; cancelProposals: TypedContractMethod<[ proposalIds: BigNumberish[] ], [ void ], "nonpayable">; disableStrategy: TypedContractMethod<[ prevStrategy: AddressLike, strategy: AddressLike ], [ void ], "nonpayable">; enableStrategy: TypedContractMethod<[ strategy: AddressLike ], [ void ], "nonpayable">; executeProposalBatch: TypedContractMethod<[ proposalId: BigNumberish, targets: AddressLike[], values: BigNumberish[], data: BytesLike[], operations: BigNumberish[] ], [ void ], "nonpayable">; executeProposalByIndex: TypedContractMethod<[ proposalId: BigNumberish, target: AddressLike, value: BigNumberish, data: BytesLike, operation: BigNumberish ], [ void ], "nonpayable">; generateTransactionHashData: TypedContractMethod<[ to: AddressLike, value: BigNumberish, data: BytesLike, operation: BigNumberish, nonce: BigNumberish ], [ string ], "view">; getGuard: TypedContractMethod<[], [string], "view">; getStrategiesPaginated: TypedContractMethod<[ start: AddressLike, pageSize: BigNumberish ], [ [string[], string] & { array: string[]; next: string; } ], "view">; getTransactionHash: TypedContractMethod<[ to: AddressLike, value: BigNumberish, data: BytesLike, operation: BigNumberish ], [ string ], "view">; getTxHash: TypedContractMethod<[ proposalId: BigNumberish, index: BigNumberish ], [ string ], "view">; guard: TypedContractMethod<[], [string], "view">; isStrategyEnabled: TypedContractMethod<[ _strategy: AddressLike ], [ boolean ], "view">; isTxExecuted: TypedContractMethod<[ proposalId: BigNumberish, index: BigNumberish ], [ boolean ], "view">; owner: TypedContractMethod<[], [string], "view">; proposals: TypedContractMethod<[ arg0: BigNumberish ], [ [ boolean, bigint, bigint, string ] & { canceled: boolean; timeLockPeriod: bigint; executionCounter: bigint; strategy: string; } ], "view">; receiveStrategy: TypedContractMethod<[ proposalId: BigNumberish, timeLockPeriod: BigNumberish ], [ void ], "nonpayable">; renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; setAvatar: TypedContractMethod<[_avatar: AddressLike], [void], "nonpayable">; setGuard: TypedContractMethod<[_guard: AddressLike], [void], "nonpayable">; setTarget: TypedContractMethod<[_target: AddressLike], [void], "nonpayable">; setUp: TypedContractMethod<[initParams: BytesLike], [void], "nonpayable">; state: TypedContractMethod<[proposalId: BigNumberish], [bigint], "view">; submitProposal: TypedContractMethod<[ txHashes: BytesLike[], strategy: AddressLike, data: BytesLike ], [ void ], "nonpayable">; totalProposalCount: TypedContractMethod<[], [bigint], "view">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "DOMAIN_SEPARATOR_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "TRANSACTION_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "avatar"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "cancelProposals"): TypedContractMethod<[proposalIds: BigNumberish[]], [void], "nonpayable">; getFunction(nameOrSignature: "disableStrategy"): TypedContractMethod<[ prevStrategy: AddressLike, strategy: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "enableStrategy"): TypedContractMethod<[strategy: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "executeProposalBatch"): TypedContractMethod<[ proposalId: BigNumberish, targets: AddressLike[], values: BigNumberish[], data: BytesLike[], operations: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "executeProposalByIndex"): TypedContractMethod<[ proposalId: BigNumberish, target: AddressLike, value: BigNumberish, data: BytesLike, operation: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "generateTransactionHashData"): TypedContractMethod<[ to: AddressLike, value: BigNumberish, data: BytesLike, operation: BigNumberish, nonce: BigNumberish ], [ string ], "view">; getFunction(nameOrSignature: "getGuard"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getStrategiesPaginated"): TypedContractMethod<[ start: AddressLike, pageSize: BigNumberish ], [ [string[], string] & { array: string[]; next: string; } ], "view">; getFunction(nameOrSignature: "getTransactionHash"): TypedContractMethod<[ to: AddressLike, value: BigNumberish, data: BytesLike, operation: BigNumberish ], [ string ], "view">; getFunction(nameOrSignature: "getTxHash"): TypedContractMethod<[ proposalId: BigNumberish, index: BigNumberish ], [ string ], "view">; getFunction(nameOrSignature: "guard"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "isStrategyEnabled"): TypedContractMethod<[_strategy: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "isTxExecuted"): TypedContractMethod<[ proposalId: BigNumberish, index: BigNumberish ], [ boolean ], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "proposals"): TypedContractMethod<[ arg0: BigNumberish ], [ [ boolean, bigint, bigint, string ] & { canceled: boolean; timeLockPeriod: bigint; executionCounter: bigint; strategy: string; } ], "view">; getFunction(nameOrSignature: "receiveStrategy"): TypedContractMethod<[ proposalId: BigNumberish, timeLockPeriod: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "setAvatar"): TypedContractMethod<[_avatar: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setGuard"): TypedContractMethod<[_guard: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setTarget"): TypedContractMethod<[_target: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setUp"): TypedContractMethod<[initParams: BytesLike], [void], "nonpayable">; getFunction(nameOrSignature: "state"): TypedContractMethod<[proposalId: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "submitProposal"): TypedContractMethod<[ txHashes: BytesLike[], strategy: AddressLike, data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "target"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "totalProposalCount"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getEvent(key: "AvatarSet"): TypedContractEvent; getEvent(key: "ChangedGuard"): TypedContractEvent; getEvent(key: "DisabledStrategy"): TypedContractEvent; getEvent(key: "EnabledStrategy"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; getEvent(key: "ProposalCanceled"): TypedContractEvent; getEvent(key: "ProposalCreated"): TypedContractEvent; getEvent(key: "ProposalExecuted"): TypedContractEvent; getEvent(key: "StrategyFinalized"): TypedContractEvent; getEvent(key: "TargetSet"): TypedContractEvent; getEvent(key: "TransactionExecuted"): TypedContractEvent; getEvent(key: "TransactionExecutedBatch"): TypedContractEvent; getEvent(key: "UsulSetup"): TypedContractEvent; filters: { "AvatarSet(address,address)": TypedContractEvent; AvatarSet: TypedContractEvent; "ChangedGuard(address)": TypedContractEvent; ChangedGuard: TypedContractEvent; "DisabledStrategy(address)": TypedContractEvent; DisabledStrategy: TypedContractEvent; "EnabledStrategy(address)": TypedContractEvent; EnabledStrategy: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; "ProposalCanceled(uint256)": TypedContractEvent; ProposalCanceled: TypedContractEvent; "ProposalCreated(address,uint256,address)": TypedContractEvent; ProposalCreated: TypedContractEvent; "ProposalExecuted(uint256)": TypedContractEvent; ProposalExecuted: TypedContractEvent; "StrategyFinalized(uint256,uint256)": TypedContractEvent; StrategyFinalized: TypedContractEvent; "TargetSet(address,address)": TypedContractEvent; TargetSet: TypedContractEvent; "TransactionExecuted(uint256,bytes32)": TypedContractEvent; TransactionExecuted: TypedContractEvent; "TransactionExecutedBatch(uint256,uint256)": TypedContractEvent; TransactionExecutedBatch: TypedContractEvent; "UsulSetup(address,address,address,address)": TypedContractEvent; UsulSetup: TypedContractEvent; }; }