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 PermissionsInterface extends Interface { getFunction(nameOrSignature: "keyForCompValues" | "keyForFunctions"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AllowTarget" | "RevokeTarget" | "ScopeAllowFunction" | "ScopeFunction" | "ScopeFunctionExecutionOptions" | "ScopeParameter" | "ScopeParameterAsOneOf" | "ScopeRevokeFunction" | "ScopeTarget" | "UnscopeParameter"): EventFragment; encodeFunctionData(functionFragment: "keyForCompValues", values: [AddressLike, BytesLike, BigNumberish]): string; encodeFunctionData(functionFragment: "keyForFunctions", values: [AddressLike, BytesLike]): string; decodeFunctionResult(functionFragment: "keyForCompValues", data: BytesLike): Result; decodeFunctionResult(functionFragment: "keyForFunctions", data: BytesLike): Result; } export declare namespace AllowTargetEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, options: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, options: bigint ]; interface OutputObject { role: bigint; targetAddress: string; options: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RevokeTargetEvent { type InputTuple = [role: BigNumberish, targetAddress: AddressLike]; type OutputTuple = [role: bigint, targetAddress: string]; interface OutputObject { role: bigint; targetAddress: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ScopeAllowFunctionEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, selector: BytesLike, options: BigNumberish, resultingScopeConfig: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, selector: string, options: bigint, resultingScopeConfig: bigint ]; interface OutputObject { role: bigint; targetAddress: string; selector: string; options: bigint; resultingScopeConfig: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ScopeFunctionEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, functionSig: BytesLike, isParamScoped: boolean[], paramType: BigNumberish[], paramComp: BigNumberish[], compValue: BytesLike[], options: BigNumberish, resultingScopeConfig: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, functionSig: string, isParamScoped: boolean[], paramType: bigint[], paramComp: bigint[], compValue: string[], options: bigint, resultingScopeConfig: bigint ]; interface OutputObject { role: bigint; targetAddress: string; functionSig: string; isParamScoped: boolean[]; paramType: bigint[]; paramComp: bigint[]; compValue: string[]; options: bigint; resultingScopeConfig: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ScopeFunctionExecutionOptionsEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, functionSig: BytesLike, options: BigNumberish, resultingScopeConfig: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, functionSig: string, options: bigint, resultingScopeConfig: bigint ]; interface OutputObject { role: bigint; targetAddress: string; functionSig: string; options: bigint; resultingScopeConfig: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ScopeParameterEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, functionSig: BytesLike, index: BigNumberish, paramType: BigNumberish, paramComp: BigNumberish, compValue: BytesLike, resultingScopeConfig: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, functionSig: string, index: bigint, paramType: bigint, paramComp: bigint, compValue: string, resultingScopeConfig: bigint ]; interface OutputObject { role: bigint; targetAddress: string; functionSig: string; index: bigint; paramType: bigint; paramComp: bigint; compValue: string; resultingScopeConfig: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ScopeParameterAsOneOfEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, functionSig: BytesLike, index: BigNumberish, paramType: BigNumberish, compValues: BytesLike[], resultingScopeConfig: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, functionSig: string, index: bigint, paramType: bigint, compValues: string[], resultingScopeConfig: bigint ]; interface OutputObject { role: bigint; targetAddress: string; functionSig: string; index: bigint; paramType: bigint; compValues: string[]; resultingScopeConfig: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ScopeRevokeFunctionEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, selector: BytesLike, resultingScopeConfig: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, selector: string, resultingScopeConfig: bigint ]; interface OutputObject { role: bigint; targetAddress: string; selector: string; resultingScopeConfig: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ScopeTargetEvent { type InputTuple = [role: BigNumberish, targetAddress: AddressLike]; type OutputTuple = [role: bigint, targetAddress: string]; interface OutputObject { role: bigint; targetAddress: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UnscopeParameterEvent { type InputTuple = [ role: BigNumberish, targetAddress: AddressLike, functionSig: BytesLike, index: BigNumberish, resultingScopeConfig: BigNumberish ]; type OutputTuple = [ role: bigint, targetAddress: string, functionSig: string, index: bigint, resultingScopeConfig: bigint ]; interface OutputObject { role: bigint; targetAddress: string; functionSig: string; index: bigint; resultingScopeConfig: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface Permissions extends BaseContract { connect(runner?: ContractRunner | null): Permissions; waitForDeployment(): Promise; interface: PermissionsInterface; 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; keyForCompValues: TypedContractMethod<[ targetAddress: AddressLike, functionSig: BytesLike, index: BigNumberish ], [ string ], "view">; keyForFunctions: TypedContractMethod<[ targetAddress: AddressLike, functionSig: BytesLike ], [ string ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "keyForCompValues"): TypedContractMethod<[ targetAddress: AddressLike, functionSig: BytesLike, index: BigNumberish ], [ string ], "view">; getFunction(nameOrSignature: "keyForFunctions"): TypedContractMethod<[ targetAddress: AddressLike, functionSig: BytesLike ], [ string ], "view">; getEvent(key: "AllowTarget"): TypedContractEvent; getEvent(key: "RevokeTarget"): TypedContractEvent; getEvent(key: "ScopeAllowFunction"): TypedContractEvent; getEvent(key: "ScopeFunction"): TypedContractEvent; getEvent(key: "ScopeFunctionExecutionOptions"): TypedContractEvent; getEvent(key: "ScopeParameter"): TypedContractEvent; getEvent(key: "ScopeParameterAsOneOf"): TypedContractEvent; getEvent(key: "ScopeRevokeFunction"): TypedContractEvent; getEvent(key: "ScopeTarget"): TypedContractEvent; getEvent(key: "UnscopeParameter"): TypedContractEvent; filters: { "AllowTarget(uint16,address,uint8)": TypedContractEvent; AllowTarget: TypedContractEvent; "RevokeTarget(uint16,address)": TypedContractEvent; RevokeTarget: TypedContractEvent; "ScopeAllowFunction(uint16,address,bytes4,uint8,uint256)": TypedContractEvent; ScopeAllowFunction: TypedContractEvent; "ScopeFunction(uint16,address,bytes4,bool[],uint8[],uint8[],bytes[],uint8,uint256)": TypedContractEvent; ScopeFunction: TypedContractEvent; "ScopeFunctionExecutionOptions(uint16,address,bytes4,uint8,uint256)": TypedContractEvent; ScopeFunctionExecutionOptions: TypedContractEvent; "ScopeParameter(uint16,address,bytes4,uint256,uint8,uint8,bytes,uint256)": TypedContractEvent; ScopeParameter: TypedContractEvent; "ScopeParameterAsOneOf(uint16,address,bytes4,uint256,uint8,bytes[],uint256)": TypedContractEvent; ScopeParameterAsOneOf: TypedContractEvent; "ScopeRevokeFunction(uint16,address,bytes4,uint256)": TypedContractEvent; ScopeRevokeFunction: TypedContractEvent; "ScopeTarget(uint16,address)": TypedContractEvent; ScopeTarget: TypedContractEvent; "UnscopeParameter(uint16,address,bytes4,uint256,uint256)": TypedContractEvent; UnscopeParameter: TypedContractEvent; }; }