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 Accounts { type BalanceStruct = { token: string; amount: BigNumberish; }; type BalanceStructOutput = [string, BigNumber] & { token: string; amount: BigNumber; }; 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 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 Listings { type ListingStruct = { assets: Assets.AssetStruct[]; lister: string; beneficiary: string; maxLockPeriod: BigNumberish; lockedTill: BigNumberish; configurator: string; immediatePayout: boolean; enabled: boolean; paused: boolean; }; type ListingStructOutput = [ Assets.AssetStructOutput[], string, string, number, number, string, boolean, boolean, boolean ] & { assets: Assets.AssetStructOutput[]; lister: string; beneficiary: string; maxLockPeriod: number; lockedTill: number; configurator: string; immediatePayout: boolean; enabled: boolean; paused: boolean; }; } export declare namespace IListingTermsRegistry { type ListingTermsStruct = { strategyId: BytesLike; strategyData: BytesLike; }; type ListingTermsStructOutput = [string, string] & { strategyId: string; strategyData: string; }; } 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 Rentings { 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; }; 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 RentalFeesStruct = { total: BigNumberish; protocolFee: BigNumberish; listerBaseFee: BigNumberish; listerPremium: BigNumberish; universeBaseFee: BigNumberish; universePremium: BigNumberish; listingTerms: IListingTermsRegistry.ListingTermsStruct; universeTaxTerms: ITaxTermsRegistry.TaxTermsStruct; protocolTaxTerms: ITaxTermsRegistry.TaxTermsStruct; }; type RentalFeesStructOutput = [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, IListingTermsRegistry.ListingTermsStructOutput, ITaxTermsRegistry.TaxTermsStructOutput, ITaxTermsRegistry.TaxTermsStructOutput ] & { total: BigNumber; protocolFee: BigNumber; listerBaseFee: BigNumber; listerPremium: BigNumber; universeBaseFee: BigNumber; universePremium: BigNumber; listingTerms: IListingTermsRegistry.ListingTermsStructOutput; universeTaxTerms: ITaxTermsRegistry.TaxTermsStructOutput; protocolTaxTerms: ITaxTermsRegistry.TaxTermsStructOutput; }; } export declare namespace ERC20RewardDistributionHelper { type RentalExternalERC20RewardFeesStruct = { token: string; totalReward: BigNumberish; listerRewardFee: BigNumberish; renterRewardFee: BigNumberish; universeRewardFee: BigNumberish; protocolRewardFee: BigNumberish; }; type RentalExternalERC20RewardFeesStructOutput = [ string, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { token: string; totalReward: BigNumber; listerRewardFee: BigNumber; renterRewardFee: BigNumber; universeRewardFee: BigNumber; protocolRewardFee: BigNumber; }; } export interface IPaymentManagerInterface extends utils.Interface { functions: { "balance(address,address)": FunctionFragment; "balances(address)": FunctionFragment; "handleExternalERC20Reward((((bytes4,bytes),uint256)[],address,address,uint32,uint32,address,bool,bool,bool),(((bytes4,bytes),uint256)[],uint256,bytes32,uint256,address,uint32,uint32,((bytes4,bytes),(bytes4,bytes),(bytes4,bytes),(address,uint256))),(address,uint256,uint256,uint256,uint256,uint256))": FunctionFragment; "handleRentalPayment((uint256,address,address,uint32,address,uint256,(bytes4,bytes)),(uint256,uint256,uint256,uint256,uint256,uint256,(bytes4,bytes),(bytes4,bytes),(bytes4,bytes)),address,uint256,bytes,bytes)": FunctionFragment; "protocolBalance(address)": FunctionFragment; "protocolBalances()": FunctionFragment; "universeBalance(uint256,address)": FunctionFragment; "universeBalances(uint256)": FunctionFragment; "withdrawFunds(address,uint256,address)": FunctionFragment; "withdrawProtocolFunds(address,uint256,address)": FunctionFragment; "withdrawUniverseFunds(uint256,address,uint256,address)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "balance" | "balances" | "handleExternalERC20Reward" | "handleRentalPayment" | "protocolBalance" | "protocolBalances" | "universeBalance" | "universeBalances" | "withdrawFunds" | "withdrawProtocolFunds" | "withdrawUniverseFunds"): FunctionFragment; encodeFunctionData(functionFragment: "balance", values: [string, string]): string; encodeFunctionData(functionFragment: "balances", values: [string]): string; encodeFunctionData(functionFragment: "handleExternalERC20Reward", values: [ Listings.ListingStruct, Rentings.AgreementStruct, ERC20RewardDistributionHelper.RentalExternalERC20RewardFeesStruct ]): string; encodeFunctionData(functionFragment: "handleRentalPayment", values: [ Rentings.ParamsStruct, Rentings.RentalFeesStruct, string, BigNumberish, BytesLike, BytesLike ]): string; encodeFunctionData(functionFragment: "protocolBalance", values: [string]): string; encodeFunctionData(functionFragment: "protocolBalances", values?: undefined): string; encodeFunctionData(functionFragment: "universeBalance", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "universeBalances", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "withdrawFunds", values: [string, BigNumberish, string]): string; encodeFunctionData(functionFragment: "withdrawProtocolFunds", values: [string, BigNumberish, string]): string; encodeFunctionData(functionFragment: "withdrawUniverseFunds", values: [BigNumberish, string, BigNumberish, string]): string; decodeFunctionResult(functionFragment: "balance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balances", data: BytesLike): Result; decodeFunctionResult(functionFragment: "handleExternalERC20Reward", data: BytesLike): Result; decodeFunctionResult(functionFragment: "handleRentalPayment", data: BytesLike): Result; decodeFunctionResult(functionFragment: "protocolBalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "protocolBalances", data: BytesLike): Result; decodeFunctionResult(functionFragment: "universeBalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "universeBalances", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawFunds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawProtocolFunds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawUniverseFunds", data: BytesLike): Result; events: { "ProtocolEarned(uint8,address,uint256)": EventFragment; "UniverseEarned(uint256,uint8,address,uint256)": EventFragment; "UserEarned(address,uint8,address,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "ProtocolEarned"): EventFragment; getEvent(nameOrSignatureOrTopic: "UniverseEarned"): EventFragment; getEvent(nameOrSignatureOrTopic: "UserEarned"): EventFragment; } export interface ProtocolEarnedEventObject { earningType: number; paymentToken: string; amount: BigNumber; } export declare type ProtocolEarnedEvent = TypedEvent<[ number, string, BigNumber ], ProtocolEarnedEventObject>; export declare type ProtocolEarnedEventFilter = TypedEventFilter; export interface UniverseEarnedEventObject { universeId: BigNumber; earningType: number; paymentToken: string; amount: BigNumber; } export declare type UniverseEarnedEvent = TypedEvent<[ BigNumber, number, string, BigNumber ], UniverseEarnedEventObject>; export declare type UniverseEarnedEventFilter = TypedEventFilter; export interface UserEarnedEventObject { user: string; earningType: number; paymentToken: string; amount: BigNumber; } export declare type UserEarnedEvent = TypedEvent<[ string, number, string, BigNumber ], UserEarnedEventObject>; export declare type UserEarnedEventFilter = TypedEventFilter; export interface IPaymentManager extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IPaymentManagerInterface; 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: { balance(account: string, token: string, overrides?: CallOverrides): Promise<[BigNumber]>; balances(account: string, overrides?: CallOverrides): Promise<[Accounts.BalanceStructOutput[]]>; handleExternalERC20Reward(listing: Listings.ListingStruct, agreement: Rentings.AgreementStruct, rentalExternalERC20RewardFees: ERC20RewardDistributionHelper.RentalExternalERC20RewardFeesStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; handleRentalPayment(rentingParams: Rentings.ParamsStruct, fees: Rentings.RentalFeesStruct, payer: string, maxPaymentAmount: BigNumberish, tokenQuote: BytesLike, tokenQuoteSignature: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; protocolBalance(token: string, overrides?: CallOverrides): Promise<[BigNumber]>; protocolBalances(overrides?: CallOverrides): Promise<[Accounts.BalanceStructOutput[]]>; universeBalance(universeId: BigNumberish, token: string, overrides?: CallOverrides): Promise<[BigNumber]>; universeBalances(universeId: BigNumberish, overrides?: CallOverrides): Promise<[Accounts.BalanceStructOutput[]]>; withdrawFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawProtocolFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawUniverseFunds(universeId: BigNumberish, token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; }; balance(account: string, token: string, overrides?: CallOverrides): Promise; balances(account: string, overrides?: CallOverrides): Promise; handleExternalERC20Reward(listing: Listings.ListingStruct, agreement: Rentings.AgreementStruct, rentalExternalERC20RewardFees: ERC20RewardDistributionHelper.RentalExternalERC20RewardFeesStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; handleRentalPayment(rentingParams: Rentings.ParamsStruct, fees: Rentings.RentalFeesStruct, payer: string, maxPaymentAmount: BigNumberish, tokenQuote: BytesLike, tokenQuoteSignature: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; protocolBalance(token: string, overrides?: CallOverrides): Promise; protocolBalances(overrides?: CallOverrides): Promise; universeBalance(universeId: BigNumberish, token: string, overrides?: CallOverrides): Promise; universeBalances(universeId: BigNumberish, overrides?: CallOverrides): Promise; withdrawFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawProtocolFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawUniverseFunds(universeId: BigNumberish, token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; callStatic: { balance(account: string, token: string, overrides?: CallOverrides): Promise; balances(account: string, overrides?: CallOverrides): Promise; handleExternalERC20Reward(listing: Listings.ListingStruct, agreement: Rentings.AgreementStruct, rentalExternalERC20RewardFees: ERC20RewardDistributionHelper.RentalExternalERC20RewardFeesStruct, overrides?: CallOverrides): Promise; handleRentalPayment(rentingParams: Rentings.ParamsStruct, fees: Rentings.RentalFeesStruct, payer: string, maxPaymentAmount: BigNumberish, tokenQuote: BytesLike, tokenQuoteSignature: BytesLike, overrides?: CallOverrides): Promise<[ Accounts.RentalEarningsStructOutput, ITokenQuote.PaymentTokenDataStructOutput ] & { rentalEarnings: Accounts.RentalEarningsStructOutput; paymentTokenData: ITokenQuote.PaymentTokenDataStructOutput; }>; protocolBalance(token: string, overrides?: CallOverrides): Promise; protocolBalances(overrides?: CallOverrides): Promise; universeBalance(universeId: BigNumberish, token: string, overrides?: CallOverrides): Promise; universeBalances(universeId: BigNumberish, overrides?: CallOverrides): Promise; withdrawFunds(token: string, amount: BigNumberish, to: string, overrides?: CallOverrides): Promise; withdrawProtocolFunds(token: string, amount: BigNumberish, to: string, overrides?: CallOverrides): Promise; withdrawUniverseFunds(universeId: BigNumberish, token: string, amount: BigNumberish, to: string, overrides?: CallOverrides): Promise; }; filters: { "ProtocolEarned(uint8,address,uint256)"(earningType?: BigNumberish | null, paymentToken?: string | null, amount?: null): ProtocolEarnedEventFilter; ProtocolEarned(earningType?: BigNumberish | null, paymentToken?: string | null, amount?: null): ProtocolEarnedEventFilter; "UniverseEarned(uint256,uint8,address,uint256)"(universeId?: BigNumberish | null, earningType?: BigNumberish | null, paymentToken?: string | null, amount?: null): UniverseEarnedEventFilter; UniverseEarned(universeId?: BigNumberish | null, earningType?: BigNumberish | null, paymentToken?: string | null, amount?: null): UniverseEarnedEventFilter; "UserEarned(address,uint8,address,uint256)"(user?: string | null, earningType?: BigNumberish | null, paymentToken?: string | null, amount?: null): UserEarnedEventFilter; UserEarned(user?: string | null, earningType?: BigNumberish | null, paymentToken?: string | null, amount?: null): UserEarnedEventFilter; }; estimateGas: { balance(account: string, token: string, overrides?: CallOverrides): Promise; balances(account: string, overrides?: CallOverrides): Promise; handleExternalERC20Reward(listing: Listings.ListingStruct, agreement: Rentings.AgreementStruct, rentalExternalERC20RewardFees: ERC20RewardDistributionHelper.RentalExternalERC20RewardFeesStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; handleRentalPayment(rentingParams: Rentings.ParamsStruct, fees: Rentings.RentalFeesStruct, payer: string, maxPaymentAmount: BigNumberish, tokenQuote: BytesLike, tokenQuoteSignature: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; protocolBalance(token: string, overrides?: CallOverrides): Promise; protocolBalances(overrides?: CallOverrides): Promise; universeBalance(universeId: BigNumberish, token: string, overrides?: CallOverrides): Promise; universeBalances(universeId: BigNumberish, overrides?: CallOverrides): Promise; withdrawFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawProtocolFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawUniverseFunds(universeId: BigNumberish, token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; }; populateTransaction: { balance(account: string, token: string, overrides?: CallOverrides): Promise; balances(account: string, overrides?: CallOverrides): Promise; handleExternalERC20Reward(listing: Listings.ListingStruct, agreement: Rentings.AgreementStruct, rentalExternalERC20RewardFees: ERC20RewardDistributionHelper.RentalExternalERC20RewardFeesStruct, overrides?: Overrides & { from?: string | Promise; }): Promise; handleRentalPayment(rentingParams: Rentings.ParamsStruct, fees: Rentings.RentalFeesStruct, payer: string, maxPaymentAmount: BigNumberish, tokenQuote: BytesLike, tokenQuoteSignature: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; protocolBalance(token: string, overrides?: CallOverrides): Promise; protocolBalances(overrides?: CallOverrides): Promise; universeBalance(universeId: BigNumberish, token: string, overrides?: CallOverrides): Promise; universeBalances(universeId: BigNumberish, overrides?: CallOverrides): Promise; withdrawFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawProtocolFunds(token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; withdrawUniverseFunds(universeId: BigNumberish, token: string, amount: BigNumberish, to: string, overrides?: Overrides & { from?: string | Promise; }): Promise; }; } //# sourceMappingURL=IPaymentManager.d.ts.map