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 IPermissionFactory { type PermissionStruct = { id: BytesLike; name: string; description: string; isActive: boolean; createdAt: BigNumberish; }; type PermissionStructOutput = [ id: string, name: string, description: string, isActive: boolean, createdAt: bigint ] & { id: string; name: string; description: string; isActive: boolean; createdAt: bigint; }; } export interface PermissionFactoryInterface extends Interface { getFunction(nameOrSignature: "acceptOwnership" | "addDefaultPermission" | "createPermission" | "getAllPermissionIds" | "getAllPermissions" | "getDefaultPermissionIds" | "getPermission" | "getPermissionBatch" | "getPermissionByName" | "getPermissionByNameBatch" | "getPermissionIdByName" | "isDefaultPermission" | "isPermissionActive" | "isPermissionActiveBatch" | "isPermissionActiveByName" | "isPermissionActiveByNameBatch" | "owner" | "pendingOwner" | "removeDefaultPermission" | "renounceOwnership" | "setPermissionActive" | "setPermissionDescription" | "supportsInterface" | "transferOwnership"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "DefaultPermissionAdded" | "DefaultPermissionRemoved" | "OwnershipTransferStarted" | "OwnershipTransferred" | "PermissionActivation" | "PermissionCreated" | "PermissionDescriptionUpdated"): EventFragment; encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "addDefaultPermission", values: [BytesLike]): string; encodeFunctionData(functionFragment: "createPermission", values: [string, string, boolean]): string; encodeFunctionData(functionFragment: "getAllPermissionIds", values?: undefined): string; encodeFunctionData(functionFragment: "getAllPermissions", values?: undefined): string; encodeFunctionData(functionFragment: "getDefaultPermissionIds", values?: undefined): string; encodeFunctionData(functionFragment: "getPermission", values: [BytesLike]): string; encodeFunctionData(functionFragment: "getPermissionBatch", values: [BytesLike[]]): string; encodeFunctionData(functionFragment: "getPermissionByName", values: [string]): string; encodeFunctionData(functionFragment: "getPermissionByNameBatch", values: [string[]]): string; encodeFunctionData(functionFragment: "getPermissionIdByName", values: [string]): string; encodeFunctionData(functionFragment: "isDefaultPermission", values: [BytesLike]): string; encodeFunctionData(functionFragment: "isPermissionActive", values: [BytesLike]): string; encodeFunctionData(functionFragment: "isPermissionActiveBatch", values: [BytesLike[]]): string; encodeFunctionData(functionFragment: "isPermissionActiveByName", values: [string]): string; encodeFunctionData(functionFragment: "isPermissionActiveByNameBatch", values: [string[]]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string; encodeFunctionData(functionFragment: "removeDefaultPermission", values: [BytesLike]): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "setPermissionActive", values: [BytesLike, boolean]): string; encodeFunctionData(functionFragment: "setPermissionDescription", values: [BytesLike, string]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addDefaultPermission", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createPermission", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAllPermissionIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAllPermissions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDefaultPermissionIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPermission", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPermissionBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPermissionByName", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPermissionByNameBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPermissionIdByName", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isDefaultPermission", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isPermissionActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isPermissionActiveBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isPermissionActiveByName", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isPermissionActiveByNameBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeDefaultPermission", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPermissionActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPermissionDescription", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; } export declare namespace DefaultPermissionAddedEvent { type InputTuple = [permissionId: BytesLike]; type OutputTuple = [permissionId: string]; interface OutputObject { permissionId: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DefaultPermissionRemovedEvent { type InputTuple = [permissionId: BytesLike]; type OutputTuple = [permissionId: string]; interface OutputObject { permissionId: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferStartedEvent { 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 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 PermissionActivationEvent { type InputTuple = [permissionId: BytesLike, isActive: boolean]; type OutputTuple = [permissionId: string, isActive: boolean]; interface OutputObject { permissionId: string; isActive: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PermissionCreatedEvent { type InputTuple = [ permissionId: BytesLike, name: string, description: string, isDefault: boolean ]; type OutputTuple = [ permissionId: string, name: string, description: string, isDefault: boolean ]; interface OutputObject { permissionId: string; name: string; description: string; isDefault: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PermissionDescriptionUpdatedEvent { type InputTuple = [permissionId: BytesLike, description: string]; type OutputTuple = [permissionId: string, description: string]; interface OutputObject { permissionId: string; description: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface PermissionFactory extends BaseContract { connect(runner?: ContractRunner | null): PermissionFactory; waitForDeployment(): Promise; interface: PermissionFactoryInterface; 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">; addDefaultPermission: TypedContractMethod<[ _permissionId: BytesLike ], [ void ], "nonpayable">; createPermission: TypedContractMethod<[ _name: string, _description: string, _isDefault: boolean ], [ void ], "nonpayable">; getAllPermissionIds: TypedContractMethod<[], [string[]], "view">; getAllPermissions: TypedContractMethod<[ ], [ IPermissionFactory.PermissionStructOutput[] ], "view">; getDefaultPermissionIds: TypedContractMethod<[], [string[]], "view">; getPermission: TypedContractMethod<[ _permissionId: BytesLike ], [ IPermissionFactory.PermissionStructOutput ], "view">; getPermissionBatch: TypedContractMethod<[ _permissionIds: BytesLike[] ], [ IPermissionFactory.PermissionStructOutput[] ], "view">; getPermissionByName: TypedContractMethod<[ _name: string ], [ IPermissionFactory.PermissionStructOutput ], "view">; getPermissionByNameBatch: TypedContractMethod<[ _names: string[] ], [ IPermissionFactory.PermissionStructOutput[] ], "view">; getPermissionIdByName: TypedContractMethod<[_name: string], [string], "view">; isDefaultPermission: TypedContractMethod<[ _permissionId: BytesLike ], [ boolean ], "view">; isPermissionActive: TypedContractMethod<[ _permissionId: BytesLike ], [ boolean ], "view">; isPermissionActiveBatch: TypedContractMethod<[ _permissionIds: BytesLike[] ], [ boolean ], "view">; isPermissionActiveByName: TypedContractMethod<[ _name: string ], [ boolean ], "view">; isPermissionActiveByNameBatch: TypedContractMethod<[ _names: string[] ], [ boolean ], "view">; owner: TypedContractMethod<[], [string], "view">; pendingOwner: TypedContractMethod<[], [string], "view">; removeDefaultPermission: TypedContractMethod<[ _permissionId: BytesLike ], [ void ], "nonpayable">; renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; setPermissionActive: TypedContractMethod<[ _permissionId: BytesLike, _isActive: boolean ], [ void ], "nonpayable">; setPermissionDescription: TypedContractMethod<[ _permissionId: BytesLike, _description: string ], [ void ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "acceptOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "addDefaultPermission"): TypedContractMethod<[_permissionId: BytesLike], [void], "nonpayable">; getFunction(nameOrSignature: "createPermission"): TypedContractMethod<[ _name: string, _description: string, _isDefault: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getAllPermissionIds"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getAllPermissions"): TypedContractMethod<[ ], [ IPermissionFactory.PermissionStructOutput[] ], "view">; getFunction(nameOrSignature: "getDefaultPermissionIds"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getPermission"): TypedContractMethod<[ _permissionId: BytesLike ], [ IPermissionFactory.PermissionStructOutput ], "view">; getFunction(nameOrSignature: "getPermissionBatch"): TypedContractMethod<[ _permissionIds: BytesLike[] ], [ IPermissionFactory.PermissionStructOutput[] ], "view">; getFunction(nameOrSignature: "getPermissionByName"): TypedContractMethod<[ _name: string ], [ IPermissionFactory.PermissionStructOutput ], "view">; getFunction(nameOrSignature: "getPermissionByNameBatch"): TypedContractMethod<[ _names: string[] ], [ IPermissionFactory.PermissionStructOutput[] ], "view">; getFunction(nameOrSignature: "getPermissionIdByName"): TypedContractMethod<[_name: string], [string], "view">; getFunction(nameOrSignature: "isDefaultPermission"): TypedContractMethod<[_permissionId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "isPermissionActive"): TypedContractMethod<[_permissionId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "isPermissionActiveBatch"): TypedContractMethod<[_permissionIds: BytesLike[]], [boolean], "view">; getFunction(nameOrSignature: "isPermissionActiveByName"): TypedContractMethod<[_name: string], [boolean], "view">; getFunction(nameOrSignature: "isPermissionActiveByNameBatch"): TypedContractMethod<[_names: string[]], [boolean], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "pendingOwner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "removeDefaultPermission"): TypedContractMethod<[_permissionId: BytesLike], [void], "nonpayable">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "setPermissionActive"): TypedContractMethod<[ _permissionId: BytesLike, _isActive: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPermissionDescription"): TypedContractMethod<[ _permissionId: BytesLike, _description: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getEvent(key: "DefaultPermissionAdded"): TypedContractEvent; getEvent(key: "DefaultPermissionRemoved"): TypedContractEvent; getEvent(key: "OwnershipTransferStarted"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; getEvent(key: "PermissionActivation"): TypedContractEvent; getEvent(key: "PermissionCreated"): TypedContractEvent; getEvent(key: "PermissionDescriptionUpdated"): TypedContractEvent; filters: { "DefaultPermissionAdded(bytes32)": TypedContractEvent; DefaultPermissionAdded: TypedContractEvent; "DefaultPermissionRemoved(bytes32)": TypedContractEvent; DefaultPermissionRemoved: TypedContractEvent; "OwnershipTransferStarted(address,address)": TypedContractEvent; OwnershipTransferStarted: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; "PermissionActivation(bytes32,bool)": TypedContractEvent; PermissionActivation: TypedContractEvent; "PermissionCreated(bytes32,string,string,bool)": TypedContractEvent; PermissionCreated: TypedContractEvent; "PermissionDescriptionUpdated(bytes32,string)": TypedContractEvent; PermissionDescriptionUpdated: TypedContractEvent; }; }