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 DelegationInterface extends Interface { getFunction(nameOrSignature: "castDelegatedVote" | "delegate" | "delegatedTo" | "lockedBalance" | "proposeByDelegate" | "undelegate"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Delegated" | "Undelegated"): EventFragment; encodeFunctionData(functionFragment: "castDelegatedVote", values: [AddressLike[], BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "delegate", values: [AddressLike]): string; encodeFunctionData(functionFragment: "delegatedTo", values: [AddressLike]): string; encodeFunctionData(functionFragment: "lockedBalance", values: [AddressLike]): string; encodeFunctionData(functionFragment: "proposeByDelegate", values: [AddressLike, AddressLike, string]): string; encodeFunctionData(functionFragment: "undelegate", values?: undefined): string; decodeFunctionResult(functionFragment: "castDelegatedVote", data: BytesLike): Result; decodeFunctionResult(functionFragment: "delegate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "delegatedTo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lockedBalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proposeByDelegate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "undelegate", data: BytesLike): Result; } export declare namespace DelegatedEvent { type InputTuple = [account: AddressLike, to: AddressLike]; type OutputTuple = [account: string, to: string]; interface OutputObject { account: string; to: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UndelegatedEvent { type InputTuple = [account: AddressLike, from: AddressLike]; type OutputTuple = [account: string, from: string]; interface OutputObject { account: string; from: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface Delegation extends BaseContract { connect(runner?: ContractRunner | null): Delegation; waitForDeployment(): Promise; interface: DelegationInterface; 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; castDelegatedVote: TypedContractMethod<[ from: AddressLike[], proposalId: BigNumberish, support: boolean ], [ void ], "nonpayable">; delegate: TypedContractMethod<[to: AddressLike], [void], "nonpayable">; delegatedTo: TypedContractMethod<[arg0: AddressLike], [string], "view">; lockedBalance: TypedContractMethod<[arg0: AddressLike], [bigint], "view">; proposeByDelegate: TypedContractMethod<[ from: AddressLike, target: AddressLike, description: string ], [ bigint ], "nonpayable">; undelegate: TypedContractMethod<[], [void], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "castDelegatedVote"): TypedContractMethod<[ from: AddressLike[], proposalId: BigNumberish, support: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "delegate"): TypedContractMethod<[to: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "delegatedTo"): TypedContractMethod<[arg0: AddressLike], [string], "view">; getFunction(nameOrSignature: "lockedBalance"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "proposeByDelegate"): TypedContractMethod<[ from: AddressLike, target: AddressLike, description: string ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "undelegate"): TypedContractMethod<[], [void], "nonpayable">; getEvent(key: "Delegated"): TypedContractEvent; getEvent(key: "Undelegated"): TypedContractEvent; filters: { "Delegated(address,address)": TypedContractEvent; Delegated: TypedContractEvent; "Undelegated(address,address)": TypedContractEvent; Undelegated: TypedContractEvent; }; }