import { BasePlugin, PluginProperty, BidOptimizerBaseInstanceContext, BidOptimizer, BidOptimizerRequest, BidOptimizerPluginResponse, SaleCondition } from "../../../index";
export declare abstract class BidOptimizerPlugin extends BasePlugin {
    instanceContext: Promise<BidOptimizerBaseInstanceContext>;
    /**
     *
     * @param bidOptimizerId
     */
    fetchBidOptimizer(bidOptimizerId: string): Promise<BidOptimizer>;
    /**
     *
     * @param bidOptimizerId
     */
    fetchBidOptimizerProperties(bidOptimizerId: string): Promise<PluginProperty[]>;
    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<BidOptimizerBaseInstanceContext>;
    /**
     *
     * @param request
     * @param instanceContext
     */
    protected abstract onBidDecisions(request: BidOptimizerRequest, instanceContext: BidOptimizerBaseInstanceContext): Promise<BidOptimizerPluginResponse>;
    private initBidDecisions();
    constructor();
}
