import * as node_modules_chart_js_dist_types_utils from 'node_modules/chart.js/dist/types/utils';
import * as node_modules_chart_js_dist_types_basic from 'node_modules/chart.js/dist/types/basic';
import * as chart_js from 'chart.js';
import * as _angular_core from '@angular/core';
import Chart from 'chart.js/auto';
import { BaseComponent } from 'primeng/basecomponent';
import { BaseStyle } from 'primeng/base';
import * as i1 from 'primeng/bind';
import { Bind } from 'primeng/bind';
import { ChartPassThrough, ChartType, ChartPlugin, ChartData, ChartDataSelectEvent } from 'primeng/types/chart';
import * as i2 from 'primeng/api';

/**
 *
 * Chart groups a collection of contents in tabs.
 *
 * [Live Demo](https://www.primeng.org/chart/)
 *
 * @module chartstyle
 *
 */
declare enum ChartClasses {
    /**
     * Class name of the root element
     */
    root = "p-chart"
}
declare class ChartStyle extends BaseStyle {
    name: string;
    classes: {
        root: string;
    };
    inlineStyles: {
        root: ({ instance }: {
            instance: any;
        }) => {
            display: string;
            position: string;
            width: any;
            height: any;
        };
    };
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartStyle, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<ChartStyle>;
}
interface ChartStyle extends BaseStyle {
}

/**
 * Chart groups a collection of contents in tabs.
 * @group Components
 * @deprecated Charts will be removed in a future release in favor of PrimeUI PRO Charts.
 */
declare class UIChart extends BaseComponent<ChartPassThrough> {
    componentName: string;
    $pcChart: UIChart | undefined;
    bindDirectiveInstance: Bind;
    onAfterViewChecked(): void;
    /**
     * Type of the chart.
     * @group Props
     */
    type: _angular_core.InputSignal<ChartType | undefined>;
    /**
     * Array of per-chart plugins to customize the chart behaviour.
     * @group Props
     */
    plugins: _angular_core.InputSignal<ChartPlugin<keyof chart_js.ChartTypeRegistry, node_modules_chart_js_dist_types_basic.AnyObject>[]>;
    /**
     * Width of the chart.
     * @group Props
     */
    width: _angular_core.InputSignal<string | undefined>;
    /**
     * Height of the chart.
     * @group Props
     */
    height: _angular_core.InputSignal<string | undefined>;
    /**
     * Whether the chart is redrawn on screen size change.
     * @group Props
     */
    responsive: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Used to define a string that autocomplete attribute the current element.
     * @group Props
     */
    ariaLabel: _angular_core.InputSignal<string | undefined>;
    /**
     * Establishes relationships between the component and label(s) where its value should be one or more element IDs.
     * @group Props
     */
    ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
    /**
     * Data to display.
     * @group Props
     */
    data: _angular_core.InputSignal<ChartData<keyof chart_js.ChartTypeRegistry, (number | [number, number] | chart_js.Point | chart_js.BubbleDataPoint | null)[], unknown> | undefined>;
    /**
     * Options to customize the chart.
     * @group Props
     */
    options: _angular_core.InputSignal<node_modules_chart_js_dist_types_utils._DeepPartialObject<chart_js.CoreChartOptions<keyof chart_js.ChartTypeRegistry> & chart_js.ElementChartOptions<keyof chart_js.ChartTypeRegistry> & chart_js.PluginChartOptions<keyof chart_js.ChartTypeRegistry> & chart_js.DatasetChartOptions<keyof chart_js.ChartTypeRegistry> & chart_js.ScaleChartOptions<keyof chart_js.ChartTypeRegistry>>>;
    /**
     * Callback to execute when an element on chart is clicked.
     * @group Emits
     */
    onDataSelect: _angular_core.OutputEmitterRef<ChartDataSelectEvent>;
    _componentStyle: ChartStyle;
    initialized: boolean;
    chart: Chart | null;
    constructor();
    canvasWidth(): string | null | undefined;
    canvasHeight(): string | null | undefined;
    onAfterViewInit(): void;
    onCanvasClick(event: Event): void;
    initChart(): void;
    getCanvas(): HTMLCanvasElement;
    getBase64Image(): string;
    generateLegend(): any;
    refresh(): void;
    reinit(): void;
    onDestroy(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<UIChart, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<UIChart, "p-chart", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "onDataSelect": "onDataSelect"; }, never, never, true, [{ directive: typeof i1.Bind; inputs: {}; outputs: {}; }]>;
}
declare class ChartModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<ChartModule, never, [typeof UIChart, typeof i2.SharedModule], [typeof UIChart, typeof i2.SharedModule]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<ChartModule>;
}

export { ChartClasses, ChartModule, ChartStyle, UIChart };
