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 declare namespace IDiamondWritableInternal { type FacetCutStruct = { target: AddressLike; action: BigNumberish; selectors: BytesLike[]; }; type FacetCutStructOutput = [ target: string, action: bigint, selectors: string[] ] & { target: string; action: bigint; selectors: string[]; }; } export declare namespace IDiamondReadable { type FacetStruct = { target: AddressLike; selectors: BytesLike[]; }; type FacetStructOutput = [target: string, selectors: string[]] & { target: string; selectors: string[]; }; } export interface ISolidStateDiamondInterface extends Interface { getFunction(nameOrSignature: "acceptOwnership" | "diamondCut" | "facetAddress" | "facetAddresses" | "facetFunctionSelectors" | "facets" | "getFallbackAddress" | "nomineeOwner" | "owner" | "setFallbackAddress" | "supportsInterface" | "transferOwnership"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "DiamondCut" | "OwnershipTransferred"): EventFragment; encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "diamondCut", values: [IDiamondWritableInternal.FacetCutStruct[], AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "facetAddress", values: [BytesLike]): string; encodeFunctionData(functionFragment: "facetAddresses", values?: undefined): string; encodeFunctionData(functionFragment: "facetFunctionSelectors", values: [AddressLike]): string; encodeFunctionData(functionFragment: "facets", values?: undefined): string; encodeFunctionData(functionFragment: "getFallbackAddress", values?: undefined): string; encodeFunctionData(functionFragment: "nomineeOwner", values?: undefined): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "setFallbackAddress", values: [AddressLike]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "diamondCut", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facetAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facetAddresses", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facetFunctionSelectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facets", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getFallbackAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "nomineeOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setFallbackAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; } export declare namespace DiamondCutEvent { type InputTuple = [ facetCuts: IDiamondWritableInternal.FacetCutStruct[], target: AddressLike, data: BytesLike ]; type OutputTuple = [ facetCuts: IDiamondWritableInternal.FacetCutStructOutput[], target: string, data: string ]; interface OutputObject { facetCuts: IDiamondWritableInternal.FacetCutStructOutput[]; target: string; data: 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 interface ISolidStateDiamond extends BaseContract { connect(runner?: ContractRunner | null): ISolidStateDiamond; waitForDeployment(): Promise; interface: ISolidStateDiamondInterface; 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; acceptOwnership: TypedContractMethod<[], [void], "nonpayable">; diamondCut: TypedContractMethod<[ facetCuts: IDiamondWritableInternal.FacetCutStruct[], target: AddressLike, data: BytesLike ], [ void ], "nonpayable">; facetAddress: TypedContractMethod<[selector: BytesLike], [string], "view">; facetAddresses: TypedContractMethod<[], [string[]], "view">; facetFunctionSelectors: TypedContractMethod<[ facet: AddressLike ], [ string[] ], "view">; facets: TypedContractMethod<[ ], [ IDiamondReadable.FacetStructOutput[] ], "view">; getFallbackAddress: TypedContractMethod<[], [string], "view">; nomineeOwner: TypedContractMethod<[], [string], "view">; owner: TypedContractMethod<[], [string], "view">; setFallbackAddress: TypedContractMethod<[ fallbackAddress: AddressLike ], [ void ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; transferOwnership: TypedContractMethod<[ account: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "acceptOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "diamondCut"): TypedContractMethod<[ facetCuts: IDiamondWritableInternal.FacetCutStruct[], target: AddressLike, data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "facetAddress"): TypedContractMethod<[selector: BytesLike], [string], "view">; getFunction(nameOrSignature: "facetAddresses"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "facetFunctionSelectors"): TypedContractMethod<[facet: AddressLike], [string[]], "view">; getFunction(nameOrSignature: "facets"): TypedContractMethod<[], [IDiamondReadable.FacetStructOutput[]], "view">; getFunction(nameOrSignature: "getFallbackAddress"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "nomineeOwner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "setFallbackAddress"): TypedContractMethod<[fallbackAddress: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[account: AddressLike], [void], "nonpayable">; getEvent(key: "DiamondCut"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; filters: { "DiamondCut(tuple[],address,bytes)": TypedContractEvent; DiamondCut: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; }; }