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 IHoldManagement { type HoldStruct = { amount: BigNumberish; expirationTimestamp: BigNumberish; escrow: AddressLike; to: AddressLike; data: BytesLike; }; type HoldStructOutput = [ amount: bigint, expirationTimestamp: bigint, escrow: string, to: string, data: string ] & { amount: bigint; expirationTimestamp: bigint; escrow: string; to: string; data: string; }; type HoldIdentifierStruct = { tokenHolder: AddressLike; holdId: BigNumberish; }; type HoldIdentifierStructOutput = [ tokenHolder: string, holdId: bigint ] & { tokenHolder: string; holdId: bigint; }; } export interface HoldManagementFacetInterface extends Interface { getFunction(nameOrSignature: "createHold" | "createHoldByController" | "executeHold" | "getHeldAmount" | "getHeldAmountFor" | "getHoldCountFor" | "getHoldFor" | "getHoldsIdFor" | "getStaticFunctionSelectors" | "getStaticInterfaceIds" | "getStaticResolverKey" | "reclaimHold" | "releaseHold"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "HoldCreated" | "HoldExecuted" | "HoldReclaimed" | "HoldReleased" | "Initialized" | "RoleAdded" | "RoleGranted" | "RoleRemoved" | "RoleRevoked" | "TokenTransfer"): EventFragment; encodeFunctionData(functionFragment: "createHold", values: [IHoldManagement.HoldStruct]): string; encodeFunctionData(functionFragment: "createHoldByController", values: [AddressLike, IHoldManagement.HoldStruct, BytesLike]): string; encodeFunctionData(functionFragment: "executeHold", values: [IHoldManagement.HoldIdentifierStruct, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "getHeldAmount", values?: undefined): string; encodeFunctionData(functionFragment: "getHeldAmountFor", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getHoldCountFor", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getHoldFor", values: [IHoldManagement.HoldIdentifierStruct]): string; encodeFunctionData(functionFragment: "getHoldsIdFor", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getStaticFunctionSelectors", values?: undefined): string; encodeFunctionData(functionFragment: "getStaticInterfaceIds", values?: undefined): string; encodeFunctionData(functionFragment: "getStaticResolverKey", values?: undefined): string; encodeFunctionData(functionFragment: "reclaimHold", values: [IHoldManagement.HoldIdentifierStruct]): string; encodeFunctionData(functionFragment: "releaseHold", values: [IHoldManagement.HoldIdentifierStruct, BigNumberish]): string; decodeFunctionResult(functionFragment: "createHold", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createHoldByController", data: BytesLike): Result; decodeFunctionResult(functionFragment: "executeHold", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHeldAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHeldAmountFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHoldCountFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHoldFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHoldsIdFor", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticFunctionSelectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticInterfaceIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticResolverKey", data: BytesLike): Result; decodeFunctionResult(functionFragment: "reclaimHold", data: BytesLike): Result; decodeFunctionResult(functionFragment: "releaseHold", data: BytesLike): Result; } export declare namespace HoldCreatedEvent { type InputTuple = [ operator: AddressLike, tokenHolder: AddressLike, holdId: BigNumberish, hold: IHoldManagement.HoldStruct, operatorData: BytesLike ]; type OutputTuple = [ operator: string, tokenHolder: string, holdId: bigint, hold: IHoldManagement.HoldStructOutput, operatorData: string ]; interface OutputObject { operator: string; tokenHolder: string; holdId: bigint; hold: IHoldManagement.HoldStructOutput; operatorData: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace HoldExecutedEvent { type InputTuple = [ tokenHolder: AddressLike, holdId: BigNumberish, amount: BigNumberish, to: AddressLike ]; type OutputTuple = [ tokenHolder: string, holdId: bigint, amount: bigint, to: string ]; interface OutputObject { tokenHolder: string; holdId: bigint; amount: bigint; to: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace HoldReclaimedEvent { type InputTuple = [ operator: AddressLike, tokenHolder: AddressLike, holdId: BigNumberish, amount: BigNumberish ]; type OutputTuple = [ operator: string, tokenHolder: string, holdId: bigint, amount: bigint ]; interface OutputObject { operator: string; tokenHolder: string; holdId: bigint; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace HoldReleasedEvent { type InputTuple = [ tokenHolder: AddressLike, holdId: BigNumberish, amount: BigNumberish ]; type OutputTuple = [ tokenHolder: string, holdId: bigint, amount: bigint ]; interface OutputObject { tokenHolder: string; holdId: bigint; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace InitializedEvent { type InputTuple = [facet: BytesLike]; type OutputTuple = [facet: string]; interface OutputObject { facet: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleAddedEvent { type InputTuple = [role: BytesLike, sender: AddressLike]; type OutputTuple = [role: string, sender: string]; interface OutputObject { role: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleGrantedEvent { type InputTuple = [ role: BytesLike, account: AddressLike, sender: AddressLike ]; type OutputTuple = [role: string, account: string, sender: string]; interface OutputObject { role: string; account: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleRemovedEvent { type InputTuple = [pos: BigNumberish, sender: AddressLike]; type OutputTuple = [pos: bigint, sender: string]; interface OutputObject { pos: bigint; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleRevokedEvent { type InputTuple = [ role: BytesLike, account: AddressLike, sender: AddressLike ]; type OutputTuple = [role: string, account: string, sender: string]; interface OutputObject { role: string; account: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TokenTransferEvent { type InputTuple = [ token: AddressLike, sender: AddressLike, receiver: AddressLike, amount: BigNumberish ]; type OutputTuple = [ token: string, sender: string, receiver: string, amount: bigint ]; interface OutputObject { token: string; sender: string; receiver: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface HoldManagementFacet extends BaseContract { connect(runner?: ContractRunner | null): HoldManagementFacet; waitForDeployment(): Promise; interface: HoldManagementFacetInterface; 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; createHold: TypedContractMethod<[ _hold: IHoldManagement.HoldStruct ], [ [boolean, bigint] & { success_: boolean; holdId_: bigint; } ], "nonpayable">; createHoldByController: TypedContractMethod<[ _from: AddressLike, _hold: IHoldManagement.HoldStruct, _operatorData: BytesLike ], [ [boolean, bigint] & { success_: boolean; holdId_: bigint; } ], "nonpayable">; executeHold: TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct, _to: AddressLike, _amount: BigNumberish ], [ boolean ], "nonpayable">; getHeldAmount: TypedContractMethod<[], [bigint], "view">; getHeldAmountFor: TypedContractMethod<[ _tokenHolder: AddressLike ], [ bigint ], "view">; getHoldCountFor: TypedContractMethod<[ _tokenHolder: AddressLike ], [ bigint ], "view">; getHoldFor: TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct ], [ [ bigint, bigint, string, string, string, string ] & { amount_: bigint; expirationTimestamp_: bigint; escrow_: string; destination_: string; data_: string; operatorData_: string; } ], "view">; getHoldsIdFor: TypedContractMethod<[ _tokenHolder: AddressLike, _pageIndex: BigNumberish, _pageLength: BigNumberish ], [ bigint[] ], "view">; getStaticFunctionSelectors: TypedContractMethod<[], [string[]], "view">; getStaticInterfaceIds: TypedContractMethod<[], [string[]], "view">; getStaticResolverKey: TypedContractMethod<[], [string], "view">; reclaimHold: TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct ], [ boolean ], "nonpayable">; releaseHold: TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct, _amount: BigNumberish ], [ boolean ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "createHold"): TypedContractMethod<[ _hold: IHoldManagement.HoldStruct ], [ [boolean, bigint] & { success_: boolean; holdId_: bigint; } ], "nonpayable">; getFunction(nameOrSignature: "createHoldByController"): TypedContractMethod<[ _from: AddressLike, _hold: IHoldManagement.HoldStruct, _operatorData: BytesLike ], [ [boolean, bigint] & { success_: boolean; holdId_: bigint; } ], "nonpayable">; getFunction(nameOrSignature: "executeHold"): TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct, _to: AddressLike, _amount: BigNumberish ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "getHeldAmount"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getHeldAmountFor"): TypedContractMethod<[_tokenHolder: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getHoldCountFor"): TypedContractMethod<[_tokenHolder: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getHoldFor"): TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct ], [ [ bigint, bigint, string, string, string, string ] & { amount_: bigint; expirationTimestamp_: bigint; escrow_: string; destination_: string; data_: string; operatorData_: string; } ], "view">; getFunction(nameOrSignature: "getHoldsIdFor"): TypedContractMethod<[ _tokenHolder: AddressLike, _pageIndex: BigNumberish, _pageLength: BigNumberish ], [ bigint[] ], "view">; getFunction(nameOrSignature: "getStaticFunctionSelectors"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getStaticInterfaceIds"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getStaticResolverKey"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "reclaimHold"): TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct ], [ boolean ], "nonpayable">; getFunction(nameOrSignature: "releaseHold"): TypedContractMethod<[ _holdIdentifier: IHoldManagement.HoldIdentifierStruct, _amount: BigNumberish ], [ boolean ], "nonpayable">; getEvent(key: "HoldCreated"): TypedContractEvent; getEvent(key: "HoldExecuted"): TypedContractEvent; getEvent(key: "HoldReclaimed"): TypedContractEvent; getEvent(key: "HoldReleased"): TypedContractEvent; getEvent(key: "Initialized"): TypedContractEvent; getEvent(key: "RoleAdded"): TypedContractEvent; getEvent(key: "RoleGranted"): TypedContractEvent; getEvent(key: "RoleRemoved"): TypedContractEvent; getEvent(key: "RoleRevoked"): TypedContractEvent; getEvent(key: "TokenTransfer"): TypedContractEvent; filters: { "HoldCreated(address,address,uint256,tuple,bytes)": TypedContractEvent; HoldCreated: TypedContractEvent; "HoldExecuted(address,uint256,int64,address)": TypedContractEvent; HoldExecuted: TypedContractEvent; "HoldReclaimed(address,address,uint256,int64)": TypedContractEvent; HoldReclaimed: TypedContractEvent; "HoldReleased(address,uint256,int64)": TypedContractEvent; HoldReleased: TypedContractEvent; "Initialized(bytes32)": TypedContractEvent; Initialized: TypedContractEvent; "RoleAdded(bytes32,address)": TypedContractEvent; RoleAdded: TypedContractEvent; "RoleGranted(bytes32,address,address)": TypedContractEvent; RoleGranted: TypedContractEvent; "RoleRemoved(uint256,address)": TypedContractEvent; RoleRemoved: TypedContractEvent; "RoleRevoked(bytes32,address,address)": TypedContractEvent; RoleRevoked: TypedContractEvent; "TokenTransfer(address,address,address,int64)": TypedContractEvent; TokenTransfer: TypedContractEvent; }; }