import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { APIDataFetchingConfigurationInterface, InClassFormUtilsInterface, MongoDbPipeLineConfigInterface } from 'ngx-t-forms-types';
import { IReportSheet } from '../../../types/report';
import { ConfigTypes, ElementEditorConfig } from '../../config/ngx-t-matrix-table-config';
import { FormGroup } from '@angular/forms';
import { MatDateFormats } from '@angular/material/core';
import moment from 'moment';
import * as i0 from "@angular/core";
export declare const CUSTOM_DATE_FORMATS: MatDateFormats;
export declare class ReportSheetComponent implements OnDestroy, OnInit {
    _config: IReportSheet | null;
    NGX_T_REPORTS_CONFIG_TOKEN: import("ngx-t-reports").NgxTReportsConfig;
    readonly NGX_T_FORMS_CONFIG: import("ngx-t-forms-types").NgxTFormsConfig;
    EXTERNAL_DATA_INTEGRATION: () => Observable<Record<string, any>>;
    externalDataIntegration$: Observable<Record<string, any>>;
    reportName: string | null;
    editMode: boolean;
    set config(config: IReportSheet | null);
    get config(): IReportSheet | null;
    sideMenuOptions: {
        title: string;
        subTitle: string;
        config: ConfigTypes;
        icon: string;
        color: string;
    }[];
    configChange: EventEmitter<IReportSheet | null>;
    error$: BehaviorSubject<string | undefined>;
    dataList$: BehaviorSubject<any[]>;
    loading$: BehaviorSubject<boolean>;
    private loadDataDebounceTimer;
    loadData(): void;
    loadMongoData(config: MongoDbPipeLineConfigInterface): void;
    loadApiData(config: APIDataFetchingConfigurationInterface): void;
    get listConfig(): any;
    set listConfig(value: any);
    get groupingConfig(): any;
    set groupingConfig(value: any);
    configInEdit: string | null;
    setConfigInEdit(type: ConfigTypes): void;
    showSidePanel: boolean;
    setShowSidePanel(): void;
    get configActiveConfig(): ElementEditorConfig | null;
    saveElement(value: any): void;
    set configActiveConfig(config: ElementEditorConfig | null);
    formsUtils: InClassFormUtilsInterface;
    range: FormGroup;
    report_inputs: import("ngx-t-forms-types").FormColumnInputs[];
    ngOnInit(): void;
    subscription: Subscription;
    ngOnDestroy(): void;
    config$: Observable<any>;
    get minMaxDateAndComp$(): Observable<{
        minDate: moment.Moment | null;
        maxDate: moment.Moment | null;
        compStartDate: moment.Moment | null;
        compEndDate: moment.Moment | null;
    }>;
    dateChanged: null | Record<string, any>;
    dateRangeChanged(event: any, control: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReportSheetComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ReportSheetComponent, "app-report-sheet", never, { "reportName": { "alias": "reportName"; "required": false; }; "editMode": { "alias": "editMode"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "configChange": "configChange"; }, never, ["*"], true, never>;
}
