import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PayableOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common"; export declare namespace CyanPaymentPlanV2 { type ItemStruct = { amount: PromiseOrValue; tokenId: PromiseOrValue; contractAddress: PromiseOrValue; cyanVaultAddress: PromiseOrValue; itemType: PromiseOrValue; }; type ItemStructOutput = [BigNumber, BigNumber, string, string, number] & { amount: BigNumber; tokenId: BigNumber; contractAddress: string; cyanVaultAddress: string; itemType: number; }; type PlanStruct = { amount: PromiseOrValue; downPaymentPercent: PromiseOrValue; interestRate: PromiseOrValue; serviceFeeRate: PromiseOrValue; term: PromiseOrValue; totalNumberOfPayments: PromiseOrValue; counterPaidPayments: PromiseOrValue; autoRepayStatus: PromiseOrValue; }; type PlanStructOutput = [BigNumber, number, number, number, number, number, number, number] & { amount: BigNumber; downPaymentPercent: number; interestRate: number; serviceFeeRate: number; term: number; totalNumberOfPayments: number; counterPaidPayments: number; autoRepayStatus: number; }; } export declare namespace ISeaport { type OfferItemStruct = { itemType: PromiseOrValue; token: PromiseOrValue; identifierOrCriteria: PromiseOrValue; startAmount: PromiseOrValue; endAmount: PromiseOrValue; }; type OfferItemStructOutput = [number, string, BigNumber, BigNumber, BigNumber] & { itemType: number; token: string; identifierOrCriteria: BigNumber; startAmount: BigNumber; endAmount: BigNumber; }; type ConsiderationItemStruct = { itemType: PromiseOrValue; token: PromiseOrValue; identifierOrCriteria: PromiseOrValue; startAmount: PromiseOrValue; endAmount: PromiseOrValue; recipient: PromiseOrValue; }; type ConsiderationItemStructOutput = [number, string, BigNumber, BigNumber, BigNumber, string] & { itemType: number; token: string; identifierOrCriteria: BigNumber; startAmount: BigNumber; endAmount: BigNumber; recipient: string; }; type OrderParametersStruct = { offerer: PromiseOrValue; zone: PromiseOrValue; offer: ISeaport.OfferItemStruct[]; consideration: ISeaport.ConsiderationItemStruct[]; orderType: PromiseOrValue; startTime: PromiseOrValue; endTime: PromiseOrValue; zoneHash: PromiseOrValue; salt: PromiseOrValue; conduitKey: PromiseOrValue; totalOriginalConsiderationItems: PromiseOrValue; }; type OrderParametersStructOutput = [string, string, ISeaport.OfferItemStructOutput[], ISeaport.ConsiderationItemStructOutput[], number, BigNumber, BigNumber, string, BigNumber, string, BigNumber] & { offerer: string; zone: string; offer: ISeaport.OfferItemStructOutput[]; consideration: ISeaport.ConsiderationItemStructOutput[]; orderType: number; startTime: BigNumber; endTime: BigNumber; zoneHash: string; salt: BigNumber; conduitKey: string; totalOriginalConsiderationItems: BigNumber; }; type AdvancedOrderStruct = { parameters: ISeaport.OrderParametersStruct; numerator: PromiseOrValue; denominator: PromiseOrValue; signature: PromiseOrValue; extraData: PromiseOrValue; }; type AdvancedOrderStructOutput = [ISeaport.OrderParametersStructOutput, BigNumber, BigNumber, string, string] & { parameters: ISeaport.OrderParametersStructOutput; numerator: BigNumber; denominator: BigNumber; signature: string; extraData: string; }; type CriteriaResolverStruct = { orderIndex: PromiseOrValue; side: PromiseOrValue; index: PromiseOrValue; identifier: PromiseOrValue; criteriaProof: PromiseOrValue[]; }; type CriteriaResolverStructOutput = [BigNumber, number, BigNumber, BigNumber, string[]] & { orderIndex: BigNumber; side: number; index: BigNumber; identifier: BigNumber; criteriaProof: string[]; }; type FulfillmentComponentStruct = { orderIndex: PromiseOrValue; itemIndex: PromiseOrValue; }; type FulfillmentComponentStructOutput = [BigNumber, BigNumber] & { orderIndex: BigNumber; itemIndex: BigNumber; }; type FulfillmentStruct = { offerComponents: ISeaport.FulfillmentComponentStruct[]; considerationComponents: ISeaport.FulfillmentComponentStruct[]; }; type FulfillmentStructOutput = [ISeaport.FulfillmentComponentStructOutput[], ISeaport.FulfillmentComponentStructOutput[]] & { offerComponents: ISeaport.FulfillmentComponentStructOutput[]; considerationComponents: ISeaport.FulfillmentComponentStructOutput[]; }; type OfferDataStruct = { orders: ISeaport.AdvancedOrderStruct[]; criteriaResolvers: ISeaport.CriteriaResolverStruct[]; fulfillments: ISeaport.FulfillmentStruct[]; recipient: PromiseOrValue; }; type OfferDataStructOutput = [ISeaport.AdvancedOrderStructOutput[], ISeaport.CriteriaResolverStructOutput[], ISeaport.FulfillmentStructOutput[], string] & { orders: ISeaport.AdvancedOrderStructOutput[]; criteriaResolvers: ISeaport.CriteriaResolverStructOutput[]; fulfillments: ISeaport.FulfillmentStructOutput[]; recipient: string; }; } export interface PaymentPlanV2Interface extends utils.Interface { functions: { "createPawn((uint256,uint256,address,address,uint8),(uint256,uint32,uint32,uint32,uint32,uint8,uint8,uint8),uint256,uint256,bytes)": FunctionFragment; "createBNPL((uint256,uint256,address,address,uint8),(uint256,uint32,uint32,uint32,uint32,uint8,uint8,uint8),uint256,uint256,bytes)": FunctionFragment; "pay(uint256,bool)": FunctionFragment; "getExpectedPlan((uint256,uint32,uint32,uint32,uint32,uint8,uint8,uint8))": FunctionFragment; "getPaymentInfoByPlanId(uint256,bool)": FunctionFragment; "getCurrencyAddressByPlanId(uint256)": FunctionFragment; "earlyUnwind(uint256,uint256,(((address,address,(uint8,address,uint256,uint256,uint256)[],(uint8,address,uint256,uint256,uint256,address)[],uint8,uint256,uint256,bytes32,uint256,bytes32,uint256),uint120,uint120,bytes,bytes)[],(uint256,uint8,uint256,uint256,bytes32[])[],((uint256,uint256)[],(uint256,uint256)[])[],address))": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "createPawn" | "createBNPL" | "pay" | "getExpectedPlan" | "getPaymentInfoByPlanId" | "getCurrencyAddressByPlanId" | "earlyUnwind"): FunctionFragment; encodeFunctionData(functionFragment: "createPawn", values: [CyanPaymentPlanV2.ItemStruct, CyanPaymentPlanV2.PlanStruct, PromiseOrValue, PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "createBNPL", values: [CyanPaymentPlanV2.ItemStruct, CyanPaymentPlanV2.PlanStruct, PromiseOrValue, PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "pay", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "getExpectedPlan", values: [CyanPaymentPlanV2.PlanStruct]): string; encodeFunctionData(functionFragment: "getPaymentInfoByPlanId", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "getCurrencyAddressByPlanId", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "earlyUnwind", values: [PromiseOrValue, PromiseOrValue, ISeaport.OfferDataStruct]): string; decodeFunctionResult(functionFragment: "createPawn", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createBNPL", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pay", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getExpectedPlan", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPaymentInfoByPlanId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrencyAddressByPlanId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "earlyUnwind", data: BytesLike): Result; events: {}; } export interface PaymentPlanV2 extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: PaymentPlanV2Interface; 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: { createPawn(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createBNPL(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; pay(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; getExpectedPlan(plan: CyanPaymentPlanV2.PlanStruct, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>; getPaymentInfoByPlanId(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>; getCurrencyAddressByPlanId(planId: PromiseOrValue, overrides?: CallOverrides): Promise<[string]>; earlyUnwind(planId: PromiseOrValue, sellPrice: PromiseOrValue, offer: ISeaport.OfferDataStruct, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; createPawn(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createBNPL(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; pay(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; getExpectedPlan(plan: CyanPaymentPlanV2.PlanStruct, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>; getPaymentInfoByPlanId(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>; getCurrencyAddressByPlanId(planId: PromiseOrValue, overrides?: CallOverrides): Promise; earlyUnwind(planId: PromiseOrValue, sellPrice: PromiseOrValue, offer: ISeaport.OfferDataStruct, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { createPawn(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: CallOverrides): Promise; createBNPL(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: CallOverrides): Promise; pay(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: CallOverrides): Promise; getExpectedPlan(plan: CyanPaymentPlanV2.PlanStruct, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>; getPaymentInfoByPlanId(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber, BigNumber, BigNumber]>; getCurrencyAddressByPlanId(planId: PromiseOrValue, overrides?: CallOverrides): Promise; earlyUnwind(planId: PromiseOrValue, sellPrice: PromiseOrValue, offer: ISeaport.OfferDataStruct, overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { createPawn(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createBNPL(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; pay(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; getExpectedPlan(plan: CyanPaymentPlanV2.PlanStruct, overrides?: CallOverrides): Promise; getPaymentInfoByPlanId(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: CallOverrides): Promise; getCurrencyAddressByPlanId(planId: PromiseOrValue, overrides?: CallOverrides): Promise; earlyUnwind(planId: PromiseOrValue, sellPrice: PromiseOrValue, offer: ISeaport.OfferDataStruct, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { createPawn(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; createBNPL(item: CyanPaymentPlanV2.ItemStruct, plan: CyanPaymentPlanV2.PlanStruct, planId: PromiseOrValue, signedBlockNum: PromiseOrValue, signature: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; pay(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; getExpectedPlan(plan: CyanPaymentPlanV2.PlanStruct, overrides?: CallOverrides): Promise; getPaymentInfoByPlanId(planId: PromiseOrValue, isEarlyPayment: PromiseOrValue, overrides?: CallOverrides): Promise; getCurrencyAddressByPlanId(planId: PromiseOrValue, overrides?: CallOverrides): Promise; earlyUnwind(planId: PromiseOrValue, sellPrice: PromiseOrValue, offer: ISeaport.OfferDataStruct, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; }