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 VestingWalletInterface extends Interface { getFunction(nameOrSignature: "beneficiary" | "duration" | "end" | "releasable(address)" | "releasable()" | "release(address)" | "release()" | "released()" | "released(address)" | "start" | "vestedAmount(uint64)" | "vestedAmount(address,uint64)"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "ERC20Released" | "EtherReleased"): EventFragment; encodeFunctionData(functionFragment: "beneficiary", values?: undefined): string; encodeFunctionData(functionFragment: "duration", values?: undefined): string; encodeFunctionData(functionFragment: "end", values?: undefined): string; encodeFunctionData(functionFragment: "releasable(address)", values: [AddressLike]): string; encodeFunctionData(functionFragment: "releasable()", values?: undefined): string; encodeFunctionData(functionFragment: "release(address)", values: [AddressLike]): string; encodeFunctionData(functionFragment: "release()", values?: undefined): string; encodeFunctionData(functionFragment: "released()", values?: undefined): string; encodeFunctionData(functionFragment: "released(address)", values: [AddressLike]): string; encodeFunctionData(functionFragment: "start", values?: undefined): string; encodeFunctionData(functionFragment: "vestedAmount(uint64)", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "vestedAmount(address,uint64)", values: [AddressLike, BigNumberish]): string; decodeFunctionResult(functionFragment: "beneficiary", data: BytesLike): Result; decodeFunctionResult(functionFragment: "duration", data: BytesLike): Result; decodeFunctionResult(functionFragment: "end", data: BytesLike): Result; decodeFunctionResult(functionFragment: "releasable(address)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "releasable()", data: BytesLike): Result; decodeFunctionResult(functionFragment: "release(address)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "release()", data: BytesLike): Result; decodeFunctionResult(functionFragment: "released()", data: BytesLike): Result; decodeFunctionResult(functionFragment: "released(address)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "start", data: BytesLike): Result; decodeFunctionResult(functionFragment: "vestedAmount(uint64)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "vestedAmount(address,uint64)", data: BytesLike): Result; } export declare namespace ERC20ReleasedEvent { type InputTuple = [token: AddressLike, amount: BigNumberish]; type OutputTuple = [token: string, amount: bigint]; interface OutputObject { token: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace EtherReleasedEvent { type InputTuple = [amount: BigNumberish]; type OutputTuple = [amount: bigint]; interface OutputObject { amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface VestingWallet extends BaseContract { connect(runner?: ContractRunner | null): VestingWallet; waitForDeployment(): Promise; interface: VestingWalletInterface; 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; beneficiary: TypedContractMethod<[], [string], "view">; duration: TypedContractMethod<[], [bigint], "view">; end: TypedContractMethod<[], [bigint], "view">; "releasable(address)": TypedContractMethod<[ token: AddressLike ], [ bigint ], "view">; "releasable()": TypedContractMethod<[], [bigint], "view">; "release(address)": TypedContractMethod<[ token: AddressLike ], [ void ], "nonpayable">; "release()": TypedContractMethod<[], [void], "nonpayable">; "released()": TypedContractMethod<[], [bigint], "view">; "released(address)": TypedContractMethod<[ token: AddressLike ], [ bigint ], "view">; start: TypedContractMethod<[], [bigint], "view">; "vestedAmount(uint64)": TypedContractMethod<[ timestamp: BigNumberish ], [ bigint ], "view">; "vestedAmount(address,uint64)": TypedContractMethod<[ token: AddressLike, timestamp: BigNumberish ], [ bigint ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "beneficiary"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "duration"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "end"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "releasable(address)"): TypedContractMethod<[token: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "releasable()"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "release(address)"): TypedContractMethod<[token: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "release()"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "released()"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "released(address)"): TypedContractMethod<[token: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "start"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "vestedAmount(uint64)"): TypedContractMethod<[timestamp: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "vestedAmount(address,uint64)"): TypedContractMethod<[ token: AddressLike, timestamp: BigNumberish ], [ bigint ], "view">; getEvent(key: "ERC20Released"): TypedContractEvent; getEvent(key: "EtherReleased"): TypedContractEvent; filters: { "ERC20Released(address,uint256)": TypedContractEvent; ERC20Released: TypedContractEvent; "EtherReleased(uint256)": TypedContractEvent; EtherReleased: TypedContractEvent; }; }