import { ArticleQuery, Operator, TOperationResult, IProductDataManager, Scheduler } from "../Types";
import { PDMTOperationResult } from "./Operations";
export { PDMTOperationResult } from "./Operations";
export interface PDMOperator extends Operator {
    /**
     * Execute an action outside of the pdm operator methods.
     *
     * @param {() => Promise<PDMTOperationResult[]>} operation Action to be executed. Should return all resulting changes
     * @returns {Promise<TOperationResult[]>}
     */
    executeArticlesOperation(operation: () => Promise<PDMTOperationResult[]>): Promise<TOperationResult[]>;
}
export declare const createPDMOperator: (sourceId: string, productDataManager: IProductDataManager, articleQuery: ArticleQuery, scheduler: Scheduler) => PDMOperator;
export declare const createPDMOperationResults: (articleQuery: ArticleQuery, productDataManager: IProductDataManager, sourceId: string, results: PDMTOperationResult[]) => Promise<TOperationResult[]>;
