import { ChartDisplayType } from '../../Types/ChartDisplayType';
import { ChartLegendPosition } from '../../Types/ChartLegendPosition';
import { ChartStackType } from '../../Types/ChartStackType';
import { Fit } from '../../Types/Fit';
import { ChartBaseElement } from './Abstracts/ChartBaseElement';
import type { IChartElementProps } from './IChartElementProps';
declare const ChartElement_base: (abstract new (...args: Array<any>) => import("../../../Controls/Behaviors/Themeable").IThemeableProps) & typeof ChartBaseElement & import("../../../Controls/Behaviors/Themeable").IThemeableCtor;
/**
 * Chart - A comprehensive data visualization component powered by ApexCharts for creating interactive charts and graphs.
 *
 * Enables rich data visualization through multiple chart types including bar, line, area, pie, donut,
 * and scatter plots. Provides extensive customization options for colors, animations, legends, and
 * interactivity to create compelling data presentations and analytics dashboards.
 *
 * @name ChartElement
 * @element mosaik-chart
 * @category Charts
 *
 * @slot - Default content area for chart data configuration and custom elements
 * @slot toolbar - Chart toolbar area for controls and actions
 * @slot legend - Custom legend area for chart series labels
 *
 * @csspart chart - Main chart rendering container
 * @csspart toolbar - Chart toolbar container
 * @csspart legend - Chart legend container
 * @csspart tooltip - Chart tooltip container
 *
 * @cssprop --chart-background-color - Background color for the chart area
 * @cssprop --chart-font-family - Font family for chart text elements
 * @cssprop --chart-font-letter-spacing - Letter spacing for chart text
 * @cssprop --chart-font-line-height - Line height for chart text
 * @cssprop --chart-font-size - Font size for chart text
 * @cssprop --chart-font-text-decoration - Text decoration for chart elements
 * @cssprop --chart-font-text-transform - Text transform for chart labels
 * @cssprop --chart-font-weight - Font weight for chart text
 * @cssprop --chart-foreground-color - Primary text and line color
 * @cssprop --chart-grid-color - Color for chart grid lines
 * @cssprop --chart-axis-color - Color for chart axes
 *
 * @dependency ApexCharts - Third-party charting library for rendering visualizations
 *
 * @example
 * ```html
 * <!-- Bar chart with multiple series -->
 * <mosaik-chart
 *   type="bar"
 *   title="Monthly Sales"
 *   data='[
 *     {"name": "Product A", "data": [10, 20, 30, 25, 35]},
 *     {"name": "Product B", "data": [15, 25, 20, 30, 40]}
 *   ]'
 *   categories='["Jan", "Feb", "Mar", "Apr", "May"]'
 *   stacked="true">
 * </mosaik-chart>
 *
 * <!-- Line chart with trend analysis -->
 * <mosaik-chart
 *   type="line"
 *   title="User Growth"
 *   subtitle="Monthly active users"
 *   data='[{"name": "Users", "data": [100, 150, 200, 280, 350, 420]}]'
 *   categories='["Jan", "Feb", "Mar", "Apr", "May", "Jun"]'
 *   smooth="true"
 *   show-markers="true">
 * </mosaik-chart>
 *
 * <!-- Pie chart for distribution -->
 * <mosaik-chart
 *   type="pie"
 *   title="Market Share"
 *   data='[44, 33, 13, 10]'
 *   labels='["Company A", "Company B", "Company C", "Others"]'
 *   show-legend="true"
 *   donut="false">
 * </mosaik-chart>
 *
 * <!-- Area chart with gradient fill -->
 * <mosaik-chart
 *   type="area"
 *   title="Revenue Trend"
 *   data='[{"name": "Revenue", "data": [1000, 1200, 1100, 1400, 1600, 1800]}]'
 *   categories='["Q1", "Q2", "Q3", "Q4", "Q5", "Q6"]'
 *   fill-type="gradient"
 *   colors='["#008FFB"]'>
 * </mosaik-chart>
 *
 * <!-- Interactive dashboard chart -->
 * <mosaik-chart
 *   type="mixed"
 *   title="Sales & Profit Analysis"
 *   height="400"
 *   toolbar-enabled="true"
 *   zoom-enabled="true"
 *   export-enabled="true">
 *   <div slot="toolbar">
 *     <mosaik-button onclick="refreshData()">Refresh</mosaik-button>
 *     <mosaik-button onclick="exportChart()">Export</mosaik-button>
 *   </div>
 * </mosaik-chart>
 * ```
 *
 * @public
 */
export declare class ChartElement extends ChartElement_base implements IChartElementProps {
    private readonly _defaultOptions;
    private _host;
    private _display;
    private _isLegendVisible;
    private _legendPosition;
    private _isXAxisVisible;
    private _isYAxisVisible;
    private _stacked;
    private _stackType;
    private _chart;
    private _annotations;
    private _colors;
    private _dataLabels;
    private _series;
    private _stroke;
    private _labels;
    private _legend;
    private _markers;
    private _noData;
    private _fill;
    private _tooltip;
    private _plotOptions;
    private _responsive;
    private _xAxis;
    private _yAxis;
    private _grid;
    private _states;
    private _theme;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `display` property.
     *
     * @public
     * @attr
     */
    get display(): ChartDisplayType;
    set display(value: ChartDisplayType);
    /**
     * Gets or sets the `stacked` property.
     *
     * @public
     * @attr
     */
    get stacked(): boolean;
    set stacked(value: boolean);
    /**
     * Gets or sets the `stackType` property.
     *
     * @public
     * @attr
     */
    get stackType(): ChartStackType;
    set stackType(value: ChartStackType);
    /**
     * Gets or sets the `isLegendVisible` property.
     *
     * @public
     * @attr
     */
    get isLegendVisible(): boolean;
    set isLegendVisible(value: boolean);
    /**
     * Gets or sets the `legendPosition` property.
     *
     * @public
     * @attr
     */
    get legendPosition(): ChartLegendPosition;
    set legendPosition(value: ChartLegendPosition);
    /**
     * Gets or sets the `isXAxisVisible` property.
     *
     * @public
     * @attr
     */
    get isXAxisVisible(): boolean;
    set isXAxisVisible(value: boolean);
    /**
     * Gets or sets the `isYAxisVisible` property.
     *
     * @public
     * @attr
     */
    get isYAxisVisible(): boolean;
    set isYAxisVisible(value: boolean);
    /**
     * Gets or sets the `chart` property.
     *
     * @public
     */
    get chart(): ApexChart | null;
    set chart(value: ApexChart | null);
    /**
     * Gets or sets the `annotations` property.
     *
     * @public
     */
    get annotations(): ApexAnnotations | null;
    set annotations(value: ApexAnnotations | null);
    /**
     * Gets or sets the `colors` property.
     *
     * @public
     */
    get colors(): Array<any> | null;
    set colors(value: Array<any> | null);
    /**
     * Gets or sets the `dataLabels` property.
     *
     * @public
     */
    get dataLabels(): ApexDataLabels | null;
    set dataLabels(value: ApexDataLabels | null);
    /**
     * Gets or sets the `series` property.
     *
     * @public
     */
    get series(): ApexAxisChartSeries | ApexNonAxisChartSeries | null;
    set series(value: ApexAxisChartSeries | ApexNonAxisChartSeries | null);
    /**
     * Gets or sets the `stroke` property.
     *
     * @public
     */
    get stroke(): ApexStroke | null;
    set stroke(value: ApexStroke | null);
    /**
     * Gets or sets the `labels` property.
     *
     * @public
     */
    get labels(): Array<string> | null;
    set labels(value: Array<string> | null);
    /**
     * Gets or sets the `legend` property.
     *
     * @public
     */
    get legend(): ApexLegend | null;
    set legend(value: ApexLegend | null);
    /**
     * Gets or sets the `markers` property.
     *
     * @public
     */
    get markers(): ApexMarkers | null;
    set markers(value: ApexMarkers | null);
    /**
     * Gets or sets the `noData` property.
     *
     * @public
     */
    get noData(): ApexNoData | null;
    set noData(value: ApexNoData | null);
    /**
     * Gets or sets the `fill` property.
     *
     * @public
     */
    get fill(): ApexFill | null;
    set fill(value: ApexFill | null);
    /**
     * Gets or sets the `tooltip` property.
     *
     * @public
     */
    get tooltip(): ApexTooltip | null;
    set tooltip(value: ApexTooltip | null);
    /**
     * Gets or sets the `plotOptions` property.
     *
     * @public
     */
    get plotOptions(): ApexPlotOptions | null;
    set plotOptions(value: ApexPlotOptions | null);
    /**
     * Gets or sets the `responsive` property.
     *
     * @public
     */
    get responsive(): Array<ApexResponsive> | null;
    set responsive(value: Array<ApexResponsive> | null);
    /**
     * Gets or sets the `xAxis` property.
     *
     * @public
     */
    get xAxis(): ApexXAxis | null;
    set xAxis(value: ApexXAxis | null);
    /**
     * Gets or sets the `yAxis` property.
     *
     * @public
     */
    get yAxis(): ApexYAxis | Array<ApexYAxis> | null;
    set yAxis(value: ApexYAxis | Array<ApexYAxis> | null);
    /**
     * Gets or sets the `grid` property.
     *
     * @public
     */
    get grid(): ApexGrid | null;
    set grid(value: ApexGrid | null);
    /**
     * Gets or sets the `states` property.
     *
     * @public
     */
    get states(): ApexStates | null;
    set states(value: ApexStates | null);
    /**
     * Gets or sets the `theme` property.
     *
     * @public
     */
    get theme(): ApexTheme | null;
    set theme(value: ApexTheme | null);
    /**
     * @protected
     * @overload
     */
    protected createRenderRoot(): HTMLElement;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     * @override
     */
    protected update(changes: Map<keyof this, unknown>): void;
    protected onFitPropertyChanged(oldValue?: Fit, newValue?: Fit): void;
    /**
     * @private
     */
    private updateSize;
    /**
     * @private
     */
    private computedOptions;
}
/**
 * @public
 */
export declare namespace ChartElement {
    type Props = IChartElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-chart': ChartElement;
    }
}
export {};
//# sourceMappingURL=ChartElement.d.ts.map