import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../common"; export declare namespace IPricingCalculator { type CheckoutTotalCostParamsStruct = { organizationId: BigNumberish; productPassOwner: AddressLike; productIds: BigNumberish[]; pricingIds: BigNumberish[]; quantities: BigNumberish[]; discountIds: BigNumberish[]; couponId: BigNumberish; }; type CheckoutTotalCostParamsStructOutput = [ organizationId: bigint, productPassOwner: string, productIds: bigint[], pricingIds: bigint[], quantities: bigint[], discountIds: bigint[], couponId: bigint ] & { organizationId: bigint; productPassOwner: string; productIds: bigint[]; pricingIds: bigint[]; quantities: bigint[]; discountIds: bigint[]; couponId: bigint; }; type CheckoutTotalCostStruct = { pricingIds: BigNumberish[]; token: AddressLike; costs: BigNumberish[]; couponCost: BigNumberish; couponDiscount: BigNumberish; couponSavings: BigNumberish; permanentCost: BigNumberish; permanentDiscount: BigNumberish; permanentSavings: BigNumberish; subTotalCost: BigNumberish; checkoutTotalCost: BigNumberish; }; type CheckoutTotalCostStructOutput = [ pricingIds: bigint[], token: string, costs: bigint[], couponCost: bigint, couponDiscount: bigint, couponSavings: bigint, permanentCost: bigint, permanentDiscount: bigint, permanentSavings: bigint, subTotalCost: bigint, checkoutTotalCost: bigint ] & { pricingIds: bigint[]; token: string; costs: bigint[]; couponCost: bigint; couponDiscount: bigint; couponSavings: bigint; permanentCost: bigint; permanentDiscount: bigint; permanentSavings: bigint; subTotalCost: bigint; checkoutTotalCost: bigint; }; } export declare namespace PricingUtils { type PricingTierStruct = { lowerBound: BigNumberish; upperBound: BigNumberish; pricePerUnit: BigNumberish; priceFlatRate: BigNumberish; }; type PricingTierStructOutput = [ lowerBound: bigint, upperBound: bigint, pricePerUnit: bigint, priceFlatRate: bigint ] & { lowerBound: bigint; upperBound: bigint; pricePerUnit: bigint; priceFlatRate: bigint; }; } export interface IPricingCalculatorInterface extends Interface { getFunction(nameOrSignature: "getChangeSubscriptionCost" | "getChangeUnitQuantityCost" | "getCheckoutTotalCost" | "getInitialPurchaseCost" | "getPricingTotalCost" | "getTotalCost" | "totalGraduatedCost" | "totalVolumeCost"): FunctionFragment; encodeFunctionData(functionFragment: "getChangeSubscriptionCost", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "getChangeUnitQuantityCost", values: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "getCheckoutTotalCost", values: [IPricingCalculator.CheckoutTotalCostParamsStruct]): string; encodeFunctionData(functionFragment: "getInitialPurchaseCost", values: [BigNumberish[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "getPricingTotalCost", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getTotalCost", values: [ BigNumberish, PricingUtils.PricingTierStruct[], BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "totalGraduatedCost", values: [PricingUtils.PricingTierStruct[], BigNumberish]): string; encodeFunctionData(functionFragment: "totalVolumeCost", values: [PricingUtils.PricingTierStruct[], BigNumberish]): string; decodeFunctionResult(functionFragment: "getChangeSubscriptionCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getChangeUnitQuantityCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCheckoutTotalCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getInitialPurchaseCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPricingTotalCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalGraduatedCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalVolumeCost", data: BytesLike): Result; } export interface IPricingCalculator extends BaseContract { connect(runner?: ContractRunner | null): IPricingCalculator; waitForDeployment(): Promise; interface: IPricingCalculatorInterface; 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; getChangeSubscriptionCost: TypedContractMethod<[ oldPricingId: BigNumberish, newPricingId: BigNumberish, currentStartDate: BigNumberish, currentEndDate: BigNumberish, quantity: BigNumberish ], [ [ bigint, string, bigint ] & { newEndDate: bigint; token: string; amount: bigint; } ], "view">; getChangeUnitQuantityCost: TypedContractMethod<[ pricingId: BigNumberish, currentStartDate: BigNumberish, currentEndDate: BigNumberish, oldQuantity: BigNumberish, newQuantity: BigNumberish ], [ [string, bigint] ], "view">; getCheckoutTotalCost: TypedContractMethod<[ params: IPricingCalculator.CheckoutTotalCostParamsStruct ], [ IPricingCalculator.CheckoutTotalCostStructOutput ], "view">; getInitialPurchaseCost: TypedContractMethod<[ pricingIds: BigNumberish[], quantities: BigNumberish[] ], [ bigint ], "view">; getPricingTotalCost: TypedContractMethod<[ pricingId: BigNumberish, quantity: BigNumberish ], [ bigint ], "view">; getTotalCost: TypedContractMethod<[ chargeStyle: BigNumberish, tiers: PricingUtils.PricingTierStruct[], flatPrice: BigNumberish, quantity: BigNumberish ], [ bigint ], "view">; totalGraduatedCost: TypedContractMethod<[ tiers: PricingUtils.PricingTierStruct[], quantity: BigNumberish ], [ bigint ], "view">; totalVolumeCost: TypedContractMethod<[ tiers: PricingUtils.PricingTierStruct[], quantity: BigNumberish ], [ bigint ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "getChangeSubscriptionCost"): TypedContractMethod<[ oldPricingId: BigNumberish, newPricingId: BigNumberish, currentStartDate: BigNumberish, currentEndDate: BigNumberish, quantity: BigNumberish ], [ [ bigint, string, bigint ] & { newEndDate: bigint; token: string; amount: bigint; } ], "view">; getFunction(nameOrSignature: "getChangeUnitQuantityCost"): TypedContractMethod<[ pricingId: BigNumberish, currentStartDate: BigNumberish, currentEndDate: BigNumberish, oldQuantity: BigNumberish, newQuantity: BigNumberish ], [ [string, bigint] ], "view">; getFunction(nameOrSignature: "getCheckoutTotalCost"): TypedContractMethod<[ params: IPricingCalculator.CheckoutTotalCostParamsStruct ], [ IPricingCalculator.CheckoutTotalCostStructOutput ], "view">; getFunction(nameOrSignature: "getInitialPurchaseCost"): TypedContractMethod<[ pricingIds: BigNumberish[], quantities: BigNumberish[] ], [ bigint ], "view">; getFunction(nameOrSignature: "getPricingTotalCost"): TypedContractMethod<[ pricingId: BigNumberish, quantity: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getTotalCost"): TypedContractMethod<[ chargeStyle: BigNumberish, tiers: PricingUtils.PricingTierStruct[], flatPrice: BigNumberish, quantity: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "totalGraduatedCost"): TypedContractMethod<[ tiers: PricingUtils.PricingTierStruct[], quantity: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "totalVolumeCost"): TypedContractMethod<[ tiers: PricingUtils.PricingTierStruct[], quantity: BigNumberish ], [ bigint ], "view">; filters: {}; }