import { HttpClient } from '@angular/common/http';
import { NodeType, Product, Term } from '@hestia-earth/schema';
import { HeNodeService } from '../node/node.service';
import * as i0 from "@angular/core";
export declare const lookups: Readonly<{
    cropYield: string;
    cropGroupingColumn: string;
}>;
export interface IAggregationModel {
    type: NodeType;
    /**
     * Path to the implementation (code) of the model.
     */
    path: string;
    /**
     * Path to the documentation of the model.
     */
    docPath: string;
    dataPath: string;
    '@id'?: string;
}
export interface ILookups {
    crop: any[];
    cropYield: any[];
}
export interface ITriggerCountryParams {
    country: Term;
    product: Product;
    '@type'?: NodeType;
}
export declare class HeAggregationEngineService {
    protected http: HttpClient;
    protected nodeService: HeNodeService;
    private modelsLoading;
    private modelsLoaded;
    private _models;
    private lookupsLoading;
    private lookupsLoaded;
    private _lookups;
    constructor(http: HttpClient, nodeService: HeNodeService);
    private init;
    private loadModels;
    private get models$();
    models(): Promise<IAggregationModel[]>;
    model$(model: Partial<IAggregationModel>): import("rxjs").Observable<IAggregationModel>;
    model(model: Partial<IAggregationModel>): Promise<IAggregationModel>;
    private loadLookup;
    private loadLookups;
    get lookups$(): import("rxjs").Observable<{
        cropYield: any[];
        crop: any[];
    }>;
    lookups(): Promise<{
        cropYield: any[];
        crop: any[];
    }>;
    static ɵfac: i0.ɵɵFactoryDeclaration<HeAggregationEngineService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<HeAggregationEngineService>;
}
