import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../../common"; export declare namespace Assets { type AssetIdStruct = { class: BytesLike; data: BytesLike; }; type AssetIdStructOutput = [string, string] & { class: string; data: string; }; type AssetStruct = { id: Assets.AssetIdStruct; value: BigNumberish; }; type AssetStructOutput = [Assets.AssetIdStructOutput, BigNumber] & { id: Assets.AssetIdStructOutput; value: BigNumber; }; } export declare namespace IListingTermsRegistry { type ListingTermsStruct = { strategyId: BytesLike; strategyData: BytesLike; }; type ListingTermsStructOutput = [string, string] & { strategyId: string; strategyData: string; }; } export declare namespace Rentings { type ParamsStruct = { listingId: BigNumberish; warper: string; renter: string; rentalPeriod: BigNumberish; paymentToken: string; listingTermsId: BigNumberish; selectedConfiguratorListingTerms: IListingTermsRegistry.ListingTermsStruct; }; type ParamsStructOutput = [ BigNumber, string, string, number, string, BigNumber, IListingTermsRegistry.ListingTermsStructOutput ] & { listingId: BigNumber; warper: string; renter: string; rentalPeriod: number; paymentToken: string; listingTermsId: BigNumber; selectedConfiguratorListingTerms: IListingTermsRegistry.ListingTermsStructOutput; }; type AgreementTermsStruct = { listingTerms: IListingTermsRegistry.ListingTermsStruct; universeTaxTerms: ITaxTermsRegistry.TaxTermsStruct; protocolTaxTerms: ITaxTermsRegistry.TaxTermsStruct; paymentTokenData: ITokenQuote.PaymentTokenDataStruct; }; type AgreementTermsStructOutput = [ IListingTermsRegistry.ListingTermsStructOutput, ITaxTermsRegistry.TaxTermsStructOutput, ITaxTermsRegistry.TaxTermsStructOutput, ITokenQuote.PaymentTokenDataStructOutput ] & { listingTerms: IListingTermsRegistry.ListingTermsStructOutput; universeTaxTerms: ITaxTermsRegistry.TaxTermsStructOutput; protocolTaxTerms: ITaxTermsRegistry.TaxTermsStructOutput; paymentTokenData: ITokenQuote.PaymentTokenDataStructOutput; }; type AgreementStruct = { warpedAssets: Assets.AssetStruct[]; universeId: BigNumberish; collectionId: BytesLike; listingId: BigNumberish; renter: string; startTime: BigNumberish; endTime: BigNumberish; agreementTerms: Rentings.AgreementTermsStruct; }; type AgreementStructOutput = [ Assets.AssetStructOutput[], BigNumber, string, BigNumber, string, number, number, Rentings.AgreementTermsStructOutput ] & { warpedAssets: Assets.AssetStructOutput[]; universeId: BigNumber; collectionId: string; listingId: BigNumber; renter: string; startTime: number; endTime: number; agreementTerms: Rentings.AgreementTermsStructOutput; }; } export declare namespace ITaxTermsRegistry { type TaxTermsStruct = { strategyId: BytesLike; strategyData: BytesLike; }; type TaxTermsStructOutput = [string, string] & { strategyId: string; strategyData: string; }; } export declare namespace ITokenQuote { type PaymentTokenDataStruct = { paymentToken: string; paymentTokenQuote: BigNumberish; }; type PaymentTokenDataStructOutput = [string, BigNumber] & { paymentToken: string; paymentTokenQuote: BigNumber; }; } export declare namespace Accounts { type UserEarningStruct = { earningType: BigNumberish; isLister: boolean; account: string; value: BigNumberish; token: string; }; type UserEarningStructOutput = [ number, boolean, string, BigNumber, string ] & { earningType: number; isLister: boolean; account: string; value: BigNumber; token: string; }; type UniverseEarningStruct = { earningType: BigNumberish; universeId: BigNumberish; value: BigNumberish; token: string; }; type UniverseEarningStructOutput = [ number, BigNumber, BigNumber, string ] & { earningType: number; universeId: BigNumber; value: BigNumber; token: string; }; type ProtocolEarningStruct = { earningType: BigNumberish; value: BigNumberish; token: string; }; type ProtocolEarningStructOutput = [number, BigNumber, string] & { earningType: number; value: BigNumber; token: string; }; type RentalEarningsStruct = { userEarnings: Accounts.UserEarningStruct[]; universeEarning: Accounts.UniverseEarningStruct; protocolEarning: Accounts.ProtocolEarningStruct; }; type RentalEarningsStructOutput = [ Accounts.UserEarningStructOutput[], Accounts.UniverseEarningStructOutput, Accounts.ProtocolEarningStructOutput ] & { userEarnings: Accounts.UserEarningStructOutput[]; universeEarning: Accounts.UniverseEarningStructOutput; protocolEarning: Accounts.ProtocolEarningStructOutput; }; } export declare namespace Warpers { type WarperStruct = { assetClass: BytesLike; original: string; paused: boolean; controller: string; name: string; universeId: BigNumberish; }; type WarperStructOutput = [ string, string, boolean, string, string, BigNumber ] & { assetClass: string; original: string; paused: boolean; controller: string; name: string; universeId: BigNumber; }; } export interface IWarperControllerInterface extends utils.Interface { functions: { "assetClass()": FunctionFragment; "calculatePremiums(((bytes4,bytes),uint256)[],(uint256,address,address,uint32,address,uint256,(bytes4,bytes)),uint256,uint256)": FunctionFragment; "checkCompatibleWarper(address)": FunctionFragment; "collectionId((bytes4,bytes))": FunctionFragment; "ensureSorted((bytes4,bytes)[])": FunctionFragment; "executeRentingHooks(uint256,(((bytes4,bytes),uint256)[],uint256,bytes32,uint256,address,uint32,uint32,((bytes4,bytes),(bytes4,bytes),(bytes4,bytes),(address,uint256))),((uint8,bool,address,uint256,address)[],(uint8,uint256,uint256,address),(uint8,uint256,address)))": FunctionFragment; "isCompatibleWarper(address)": FunctionFragment; "returnAssetFromVault(((bytes4,bytes),uint256),address)": FunctionFragment; "supportsInterface(bytes4)": FunctionFragment; "transfer(((bytes4,bytes),uint256),address,address,bytes)": FunctionFragment; "transferAssetToVault(((bytes4,bytes),uint256),address,address)": FunctionFragment; "validateRentingParams((bytes4,address,bool,address,string,uint256),((bytes4,bytes),uint256)[],(uint256,address,address,uint32,address,uint256,(bytes4,bytes)))": FunctionFragment; "warp(((bytes4,bytes),uint256)[],address,address)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "assetClass" | "calculatePremiums" | "checkCompatibleWarper" | "collectionId" | "ensureSorted" | "executeRentingHooks" | "isCompatibleWarper" | "returnAssetFromVault" | "supportsInterface" | "transfer" | "transferAssetToVault" | "validateRentingParams" | "warp"): FunctionFragment; encodeFunctionData(functionFragment: "assetClass", values?: undefined): string; encodeFunctionData(functionFragment: "calculatePremiums", values: [ Assets.AssetStruct[], Rentings.ParamsStruct, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "checkCompatibleWarper", values: [string]): string; encodeFunctionData(functionFragment: "collectionId", values: [Assets.AssetIdStruct]): string; encodeFunctionData(functionFragment: "ensureSorted", values: [Assets.AssetIdStruct[]]): string; encodeFunctionData(functionFragment: "executeRentingHooks", values: [ BigNumberish, Rentings.AgreementStruct, Accounts.RentalEarningsStruct ]): string; encodeFunctionData(functionFragment: "isCompatibleWarper", values: [string]): string; encodeFunctionData(functionFragment: "returnAssetFromVault", values: [Assets.AssetStruct, string]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "transfer", values: [Assets.AssetStruct, string, string, BytesLike]): string; encodeFunctionData(functionFragment: "transferAssetToVault", values: [Assets.AssetStruct, string, string]): string; encodeFunctionData(functionFragment: "validateRentingParams", values: [Warpers.WarperStruct, Assets.AssetStruct[], Rentings.ParamsStruct]): string; encodeFunctionData(functionFragment: "warp", values: [Assets.AssetStruct[], string, string]): string; decodeFunctionResult(functionFragment: "assetClass", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculatePremiums", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkCompatibleWarper", data: BytesLike): Result; decodeFunctionResult(functionFragment: "collectionId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "ensureSorted", data: BytesLike): Result; decodeFunctionResult(functionFragment: "executeRentingHooks", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isCompatibleWarper", data: BytesLike): Result; decodeFunctionResult(functionFragment: "returnAssetFromVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferAssetToVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "validateRentingParams", data: BytesLike): Result; decodeFunctionResult(functionFragment: "warp", data: BytesLike): Result; events: { "AssetTransfer(tuple,address,address,bytes)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "AssetTransfer"): EventFragment; } export interface AssetTransferEventObject { asset: Assets.AssetStructOutput; from: string; to: string; data: string; } export declare type AssetTransferEvent = TypedEvent<[ Assets.AssetStructOutput, string, string, string ], AssetTransferEventObject>; export declare type AssetTransferEventFilter = TypedEventFilter; export interface IWarperController extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IWarperControllerInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { assetClass(overrides?: CallOverrides): Promise<[string]>; calculatePremiums(assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, universeFee: BigNumberish, listerFee: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { universePremium: BigNumber; listerPremium: BigNumber; }>; checkCompatibleWarper(warper: string, overrides?: CallOverrides): Promise<[void]>; collectionId(assetId: Assets.AssetIdStruct, overrides?: CallOverrides): Promise<[string]>; ensureSorted(assets: Assets.AssetIdStruct[], overrides?: CallOverrides): Promise<[void]>; executeRentingHooks(rentalId: BigNumberish, rentalAgreement: Rentings.AgreementStruct, rentalEarnings: Accounts.RentalEarningsStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; isCompatibleWarper(warper: string, overrides?: CallOverrides): Promise<[boolean]>; returnAssetFromVault(asset: Assets.AssetStruct, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<[boolean]>; transfer(asset: Assets.AssetStruct, from: string, to: string, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; transferAssetToVault(asset: Assets.AssetStruct, assetOwner: string, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateRentingParams(warper: Warpers.WarperStruct, assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, overrides?: CallOverrides): Promise<[void]>; warp(assets: Assets.AssetStruct[], warper: string, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; }; assetClass(overrides?: CallOverrides): Promise; calculatePremiums(assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, universeFee: BigNumberish, listerFee: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { universePremium: BigNumber; listerPremium: BigNumber; }>; checkCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; collectionId(assetId: Assets.AssetIdStruct, overrides?: CallOverrides): Promise; ensureSorted(assets: Assets.AssetIdStruct[], overrides?: CallOverrides): Promise; executeRentingHooks(rentalId: BigNumberish, rentalAgreement: Rentings.AgreementStruct, rentalEarnings: Accounts.RentalEarningsStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; isCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; returnAssetFromVault(asset: Assets.AssetStruct, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise; transfer(asset: Assets.AssetStruct, from: string, to: string, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; transferAssetToVault(asset: Assets.AssetStruct, assetOwner: string, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateRentingParams(warper: Warpers.WarperStruct, assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, overrides?: CallOverrides): Promise; warp(assets: Assets.AssetStruct[], warper: string, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; callStatic: { assetClass(overrides?: CallOverrides): Promise; calculatePremiums(assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, universeFee: BigNumberish, listerFee: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { universePremium: BigNumber; listerPremium: BigNumber; }>; checkCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; collectionId(assetId: Assets.AssetIdStruct, overrides?: CallOverrides): Promise; ensureSorted(assets: Assets.AssetIdStruct[], overrides?: CallOverrides): Promise; executeRentingHooks(rentalId: BigNumberish, rentalAgreement: Rentings.AgreementStruct, rentalEarnings: Accounts.RentalEarningsStruct, overrides?: CallOverrides): Promise; isCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; returnAssetFromVault(asset: Assets.AssetStruct, vault: string, overrides?: CallOverrides): Promise; supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise; transfer(asset: Assets.AssetStruct, from: string, to: string, data: BytesLike, overrides?: CallOverrides): Promise; transferAssetToVault(asset: Assets.AssetStruct, assetOwner: string, vault: string, overrides?: CallOverrides): Promise; validateRentingParams(warper: Warpers.WarperStruct, assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, overrides?: CallOverrides): Promise; warp(assets: Assets.AssetStruct[], warper: string, to: string, overrides?: CallOverrides): Promise<[ string, Assets.AssetStructOutput[] ] & { warpedCollectionId: string; warpedAssets: Assets.AssetStructOutput[]; }>; }; filters: { "AssetTransfer(tuple,address,address,bytes)"(asset?: null, from?: string | null, to?: string | null, data?: null): AssetTransferEventFilter; AssetTransfer(asset?: null, from?: string | null, to?: string | null, data?: null): AssetTransferEventFilter; }; estimateGas: { assetClass(overrides?: CallOverrides): Promise; calculatePremiums(assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, universeFee: BigNumberish, listerFee: BigNumberish, overrides?: CallOverrides): Promise; checkCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; collectionId(assetId: Assets.AssetIdStruct, overrides?: CallOverrides): Promise; ensureSorted(assets: Assets.AssetIdStruct[], overrides?: CallOverrides): Promise; executeRentingHooks(rentalId: BigNumberish, rentalAgreement: Rentings.AgreementStruct, rentalEarnings: Accounts.RentalEarningsStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; isCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; returnAssetFromVault(asset: Assets.AssetStruct, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise; transfer(asset: Assets.AssetStruct, from: string, to: string, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; transferAssetToVault(asset: Assets.AssetStruct, assetOwner: string, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateRentingParams(warper: Warpers.WarperStruct, assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, overrides?: CallOverrides): Promise; warp(assets: Assets.AssetStruct[], warper: string, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; }; populateTransaction: { assetClass(overrides?: CallOverrides): Promise; calculatePremiums(assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, universeFee: BigNumberish, listerFee: BigNumberish, overrides?: CallOverrides): Promise; checkCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; collectionId(assetId: Assets.AssetIdStruct, overrides?: CallOverrides): Promise; ensureSorted(assets: Assets.AssetIdStruct[], overrides?: CallOverrides): Promise; executeRentingHooks(rentalId: BigNumberish, rentalAgreement: Rentings.AgreementStruct, rentalEarnings: Accounts.RentalEarningsStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; isCompatibleWarper(warper: string, overrides?: CallOverrides): Promise; returnAssetFromVault(asset: Assets.AssetStruct, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise; transfer(asset: Assets.AssetStruct, from: string, to: string, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; transferAssetToVault(asset: Assets.AssetStruct, assetOwner: string, vault: string, overrides?: Overrides & { from?: string | Promise; }): Promise; validateRentingParams(warper: Warpers.WarperStruct, assets: Assets.AssetStruct[], rentingParams: Rentings.ParamsStruct, overrides?: CallOverrides): Promise; warp(assets: Assets.AssetStruct[], warper: string, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; }; } //# sourceMappingURL=IWarperController.d.ts.map