import { FiltersService } from './../../../../filters/filters.service';
import { OnInit, EventEmitter, OnDestroy, ElementRef } from '@angular/core';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { ApexAxisChartSeries, ApexChart, ApexDataLabels, ApexXAxis, ApexPlotOptions, ApexYAxis, ApexLegend, ApexTitleSubtitle, ApexGrid, ApexNoData, ChartComponent } from 'ng-apexcharts';
import { ResizeEvent } from 'angular-resizable-element';
import { MatMenuTrigger } from '@angular/material/menu';
import { FieldsListService } from '../../../../field-list-lib/fields-list.service';
import { CrossFilterDto } from '../../../../common-dto/elements-dto';
import { ChartProperty } from '../chart/chart-property';
import { IGraphicalReportComponent } from '../igraphical-report.component';
import { CardChart } from './card-chart';
import { Report } from '../../../../common-utils/report';
import { ReportBuilderMasterService } from '../../report-builder-master.service';
import { SendToDashboardService } from '../../../../dashboard-lib/send-to-dashboard.service';
import { ElementService } from '../../element.service';
import { CommonService } from '../../../../common.service';
import { ScreenType } from '../../../filters/condition-type';
import { AxFilter } from '../../../filters/ax-filter';
import { DashboardBuilderService } from '../../../../../lib/dashboard-lib/dashboard-builder.service';
import { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';
import { IChartComponent } from '../ichart-component';
import * as i0 from "@angular/core";
export declare type CardChartOptions = {
    series: ApexAxisChartSeries;
    chart: ApexChart;
    dataLabels: ApexDataLabels;
    plotOptions: ApexPlotOptions;
    xaxis: ApexXAxis;
    yaxis: ApexYAxis;
    legend: ApexLegend;
    grid: ApexGrid;
    title: ApexTitleSubtitle;
    noData: ApexNoData;
};
export declare class CardChartComponent implements IGraphicalReportComponent, OnInit, OnDestroy, IChartComponent {
    private _fieldsListService;
    private _reportBuilderMasterService;
    private _sendToDashboardService;
    private _elementService;
    private _commonService;
    private _dashboardService;
    private _filterService;
    reportData: CardChart;
    isEditable: boolean;
    guid: string;
    onchartClickedEvent: EventEmitter<any>;
    onchartRightClickDeleteEvent: EventEmitter<any>;
    chartRendered: EventEmitter<any>;
    screenType: ScreenType;
    drillThroughFilterInput: AxFilter;
    drillThroughParentType: ScreenType;
    currentPageId: number;
    appVersionId: number;
    ScreenType: typeof ScreenType;
    ShowFilters: boolean;
    yPosition: number;
    xPosition: number;
    contextMenu: MatMenuTrigger;
    cardChartContainer: ChartComponent;
    cardBody: ElementRef;
    uniquekey: number;
    /***
     * MatMenuTrigger Use for right click on the chart action
     */
    property: ChartProperty;
    report: Report;
    handle: boolean;
    componentRef: IChartComponent;
    selectedDataPoints: Array<number>;
    contextMenuPosition: {
        x: string;
        y: string;
    };
    style: {};
    reportId: number;
    isDirty: boolean;
    showGhostLoader: boolean;
    ghostLoaderType: typeof GhostLoaderType;
    screenTypes: typeof ScreenType;
    cardChartOptions: Partial<CardChartOptions>;
    private _unsubscribeAll;
    /**
     * Constructor
     *
     */
    constructor(_fieldsListService: FieldsListService, // Used for get matrix data
    _reportBuilderMasterService: ReportBuilderMasterService, _sendToDashboardService: SendToDashboardService, _elementService: ElementService, _commonService: CommonService, _dashboardService: DashboardBuilderService, _filterService: FiltersService);
    /**
     * Chart Select Event.
     */
    chartSelect(): void;
    /**
     * Delete Chart.
     */
    openOptionPopUp(): void;
    /**
     * Pin to Dashboard
     */
    sendToDashboard(): void;
    click(event: any): void;
    onResize(event: any): void;
    /**
     * On init life cycle hook.
     */
    ngOnInit(): void;
    /**
     * On destroy
     */
    ngOnDestroy(): void;
    /***
     * On chart context  click Function
     */
    onContextMenu(event: MouseEvent, chart: CardChart): void;
    /**
     * Created filter object for cross filtering.
     *
     *  @param CrossFilterDto
     */
    createCrossFilter(crossFilterData: CrossFilterDto): void;
    /**
     * pushed the filter object into basic filter and applied the filter on the data
     *
     *  @param CrossFilterDto
     *  @param AxFilter
     */
    getCrossFilterData(_filter: AxFilter, crossFilterData: CrossFilterDto): void;
    /**
     * Chart Resize min dimension.
     *
     * @param event
     * @returns
     */
    chartResizeMinDimensions(event: ResizeEvent): boolean;
    /****
    * onResizing = this function use for resize the  chart
    */
    onResizing(event: ResizeEvent): void;
    /**
       * Called when resizing ends
       */
    resizeEnd(): void;
    /**
     * Get Field data
     */
    getChartData(): Promise<void>;
    /**
     * attributeDropped
     * Called when attribute is dragged from left side fields list and dropped on the Card chart
     *
     * @param $event
     */
    attributeDropped($event: CdkDragDrop<any>): void;
    /**
     * call cdk drag start event
     *
     * @param $event
     */
    dragStart($event: DragEvent): void;
    /**
     * call cdk drag end event
     *
     * @param $event
     */
    dragEnd($event: DragEvent): void;
    /**
     * emit event remove element from dashboard
     *
     * @param event
     */
    onDeleteClick(event: MouseEvent): void;
    /**
     * Apply local filter.
     */
    applyLocalFilter(): void;
    dirtyFlowCheckEvent(): void;
    /**
     * Reset cross filter and emit reset cross filter event.
     */
    resetCrossFilter(ShowFilters: boolean): void;
    private adjustFontSize;
    static ɵfac: i0.ɵɵFactoryDeclaration<CardChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CardChartComponent, "lib-card-chart", never, { "reportData": "reportData"; "isEditable": "isEditable"; "guid": "guid"; "screenType": "screenType"; "drillThroughFilterInput": "drillThroughFilterInput"; "drillThroughParentType": "drillThroughParentType"; "currentPageId": "currentPageId"; "appVersionId": "appVersionId"; }, { "onchartClickedEvent": "onchartClickedEvent"; "onchartRightClickDeleteEvent": "onchartRightClickDeleteEvent"; "chartRendered": "chartRendered"; }, never, never>;
}
