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 IERC777Interface extends Interface { getFunction(nameOrSignature: "authorizeOperator" | "balanceOf" | "burn" | "defaultOperators" | "granularity" | "isOperatorFor" | "name" | "operatorBurn" | "operatorSend" | "revokeOperator" | "send" | "symbol" | "totalSupply"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AuthorizedOperator" | "Burned" | "Minted" | "RevokedOperator" | "Sent"): EventFragment; encodeFunctionData(functionFragment: "authorizeOperator", values: [AddressLike]): string; encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike]): string; encodeFunctionData(functionFragment: "burn", values: [BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "defaultOperators", values?: undefined): string; encodeFunctionData(functionFragment: "granularity", values?: undefined): string; encodeFunctionData(functionFragment: "isOperatorFor", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "operatorBurn", values: [AddressLike, BigNumberish, BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "operatorSend", values: [AddressLike, AddressLike, BigNumberish, BytesLike, BytesLike]): string; encodeFunctionData(functionFragment: "revokeOperator", values: [AddressLike]): string; encodeFunctionData(functionFragment: "send", values: [AddressLike, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "symbol", values?: undefined): string; encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string; decodeFunctionResult(functionFragment: "authorizeOperator", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; decodeFunctionResult(functionFragment: "defaultOperators", data: BytesLike): Result; decodeFunctionResult(functionFragment: "granularity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isOperatorFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "operatorBurn", data: BytesLike): Result; decodeFunctionResult(functionFragment: "operatorSend", data: BytesLike): Result; decodeFunctionResult(functionFragment: "revokeOperator", data: BytesLike): Result; decodeFunctionResult(functionFragment: "send", data: BytesLike): Result; decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; } export declare namespace AuthorizedOperatorEvent { type InputTuple = [operator: AddressLike, tokenHolder: AddressLike]; type OutputTuple = [operator: string, tokenHolder: string]; interface OutputObject { operator: string; tokenHolder: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace BurnedEvent { type InputTuple = [ operator: AddressLike, from: AddressLike, amount: BigNumberish, data: BytesLike, operatorData: BytesLike ]; type OutputTuple = [ operator: string, from: string, amount: bigint, data: string, operatorData: string ]; interface OutputObject { operator: string; from: string; amount: bigint; data: string; operatorData: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MintedEvent { type InputTuple = [ operator: AddressLike, to: AddressLike, amount: BigNumberish, data: BytesLike, operatorData: BytesLike ]; type OutputTuple = [ operator: string, to: string, amount: bigint, data: string, operatorData: string ]; interface OutputObject { operator: string; to: string; amount: bigint; data: string; operatorData: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RevokedOperatorEvent { type InputTuple = [operator: AddressLike, tokenHolder: AddressLike]; type OutputTuple = [operator: string, tokenHolder: string]; interface OutputObject { operator: string; tokenHolder: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SentEvent { type InputTuple = [ operator: AddressLike, from: AddressLike, to: AddressLike, amount: BigNumberish, data: BytesLike, operatorData: BytesLike ]; type OutputTuple = [ operator: string, from: string, to: string, amount: bigint, data: string, operatorData: string ]; interface OutputObject { operator: string; from: string; to: string; amount: bigint; data: string; operatorData: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IERC777 extends BaseContract { connect(runner?: ContractRunner | null): IERC777; waitForDeployment(): Promise; interface: IERC777Interface; 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; authorizeOperator: TypedContractMethod<[ operator: AddressLike ], [ void ], "nonpayable">; balanceOf: TypedContractMethod<[owner: AddressLike], [bigint], "view">; burn: TypedContractMethod<[ amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; defaultOperators: TypedContractMethod<[], [string[]], "view">; granularity: TypedContractMethod<[], [bigint], "view">; isOperatorFor: TypedContractMethod<[ operator: AddressLike, tokenHolder: AddressLike ], [ boolean ], "view">; name: TypedContractMethod<[], [string], "view">; operatorBurn: TypedContractMethod<[ account: AddressLike, amount: BigNumberish, data: BytesLike, operatorData: BytesLike ], [ void ], "nonpayable">; operatorSend: TypedContractMethod<[ sender: AddressLike, recipient: AddressLike, amount: BigNumberish, data: BytesLike, operatorData: BytesLike ], [ void ], "nonpayable">; revokeOperator: TypedContractMethod<[ operator: AddressLike ], [ void ], "nonpayable">; send: TypedContractMethod<[ recipient: AddressLike, amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; symbol: TypedContractMethod<[], [string], "view">; totalSupply: TypedContractMethod<[], [bigint], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "authorizeOperator"): TypedContractMethod<[operator: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[owner: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "burn"): TypedContractMethod<[ amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "defaultOperators"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "granularity"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "isOperatorFor"): TypedContractMethod<[ operator: AddressLike, tokenHolder: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "operatorBurn"): TypedContractMethod<[ account: AddressLike, amount: BigNumberish, data: BytesLike, operatorData: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "operatorSend"): TypedContractMethod<[ sender: AddressLike, recipient: AddressLike, amount: BigNumberish, data: BytesLike, operatorData: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "revokeOperator"): TypedContractMethod<[operator: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "send"): TypedContractMethod<[ recipient: AddressLike, amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "symbol"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "totalSupply"): TypedContractMethod<[], [bigint], "view">; getEvent(key: "AuthorizedOperator"): TypedContractEvent; getEvent(key: "Burned"): TypedContractEvent; getEvent(key: "Minted"): TypedContractEvent; getEvent(key: "RevokedOperator"): TypedContractEvent; getEvent(key: "Sent"): TypedContractEvent; filters: { "AuthorizedOperator(address,address)": TypedContractEvent; AuthorizedOperator: TypedContractEvent; "Burned(address,address,uint256,bytes,bytes)": TypedContractEvent; Burned: TypedContractEvent; "Minted(address,address,uint256,bytes,bytes)": TypedContractEvent; Minted: TypedContractEvent; "RevokedOperator(address,address)": TypedContractEvent; RevokedOperator: TypedContractEvent; "Sent(address,address,address,uint256,bytes,bytes)": TypedContractEvent; Sent: TypedContractEvent; }; }