import { CoreModel } from "../models/coremodel.js";
import MapperService, { MapperParameters, MapUpdates } from "./mapper.js";
export declare class AggregatorParameters extends MapperParameters {
    /**
     * @default index
     */
    key: string;
    constructor(params: any);
}
/**
 * Service that aggregate several CoreModel into one
 *
 * Similar to a Mapper except that the target is constant
 *
 * @WebdaModda Aggregator
 */
export default class AggregatorService<T extends AggregatorParameters = AggregatorParameters> extends MapperService<T> {
    /**
     * Create index if not existing
     *
     * @inheritdoc
     */
    init(): Promise<this>;
    /**
     * @override
     */
    loadParameters(params: any): AggregatorParameters;
    /**
     * Make sure the aggregate document exist
     */
    createAggregate(): Promise<void>;
    /**
     * Create an aggregation
     *
     * @param object
     * @param updates
     * @returns
     */
    handleMap(object: CoreModel, updates: MapUpdates): Promise<void>;
}
export { AggregatorService };
