import { BidOptimizer } from '../../api/core/bidoptimizer/BidOptimizerInterface'; import { PluginProperty } from '../../api/core/plugin/PluginPropertyInterface'; import { BidDecision } from '../../api/plugin/bidoptimizer/BidDecision'; import { BidOptimizerRequest, SaleCondition } from '../../api/plugin/bidoptimizer/BidOptimizerRequestInterface'; import { BasePlugin, PropertiesWrapper } from '../common'; export type BidOptimizerPluginResponse = BidDecision; export interface BidOptimizerBaseInstanceContext { properties: PropertiesWrapper; bidOptimizer: BidOptimizer; } export declare abstract class BidOptimizerPlugin extends BasePlugin { instanceContext: Promise; constructor(enableThrottling?: boolean); /** * * @param bidOptimizerId */ fetchBidOptimizer(bidOptimizerId: string): Promise; /** * * @param bidOptimizerId */ fetchBidOptimizerProperties(bidOptimizerId: string): Promise; findBestSalesConditions(bidPrice: number, salesConditions: SaleCondition[]): SaleCondition; /** * Method to build an instance context * To be overriden to get a cutom behavior * This is a default provided implementation * @param bidOptimizerId */ protected instanceContextBuilder(bidOptimizerId: string): Promise; /** * * @param request * @param instanceContext */ protected abstract onBidDecisions(request: BidOptimizerRequest, instanceContext: BidOptimizerBaseInstanceContext): Promise; protected getInstanceContext(bidOptimizerId: string): Promise; private initBidDecisions; }