import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { DataModel } from '../enlighten-lib/data-model/data-model';
import { Entity } from '../enlighten-lib/fields/entity';
import { Entity as ColumnEntity } from '../enlighten-lib/data-model/entity';
import { ElementsDto } from '../common-dto/elements-dto';
import { Attribute } from '../enlighten-lib/data-model/attribute';
import { UserDataService } from '../core/user/user-data.service';
import { MyAppListService } from '../app-list/my-app-list.service';
import * as i0 from "@angular/core";
export declare const fields: any[];
export declare class FieldsListService {
    private _httpClient;
    private _userDataService;
    private _myAppListService;
    private _entities;
    private _entitiesAttribute;
    private _entitiesDimension;
    /**
     * Constructor
     */
    constructor(_httpClient: HttpClient, _userDataService: UserDataService, _myAppListService: MyAppListService);
    /**
     * Getter for entities
     */
    get entities$(): Observable<DataModel>;
    /**
     * Getter for entities Attribute
     */
    get entitiesAttribute$(): Observable<any>;
    /**
     * Getter for entities Attribute
     */
    get entitiesDimension$(): Observable<Entity[]>;
    /**
     * Get entities
     */
    getEntitiesold(): Observable<any[]>;
    getEntities(reportId: number): Observable<any[]>;
    getDataModel(reportId: number): Promise<any>;
    /**
     * get matrix data
     * @param data
     * @returns
     */
    getMatrixData(data: ElementsDto): Promise<any>;
    getDimensionData(data: ElementsDto): Observable<Array<Entity>>;
    /**
     * Create Data Model object
     *
     * @param dataModel
     * @returns data model
     */
    createDataModelObject(dataModel: DataModel): DataModel;
    /**
     * Create ColumnEntity object
     *
     * @param entities
     * @returns entity array
     */
    createEntitiesObjectsArray(entities: Array<ColumnEntity>): Array<ColumnEntity>;
    /**
     * Create Attribute object
     *
     * @param attributes
     * @returns attribute array
     */
    createAttributesObject(attributes: Array<Attribute>): Array<Attribute>;
    static ɵfac: i0.ɵɵFactoryDeclaration<FieldsListService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FieldsListService>;
}
