import { ElementRef, OnInit, OnChanges, AfterViewInit } from '@angular/core';
import { CfChartComponent } from '../chart/chart.component';
import { BarChartModel } from '../../models/chart/bar-chart.model';
import { TemplateService } from '../../services/template-service/template.service';
import { CfEventService } from '../../services/event.service';
/**
 * <p>CfBarChart component is created based on <b><a href="https://github.com/swimlane/ngx-charts" target="_blank">Ngx-charts</a></b> and <b>CfChartComponet</b></p>
 * <pre>
 * <code>
 * import { BarChartModel } from 'cedrus-fusion'
 * import { ChartStylingModel } from 'cedrus-fusion'
 * <code><</code>cf-bar-chart<code>></code><code><</code><code>/</code>cf-bar-chart<code>></code>
 * </code>
 * </pre>
 * <pre>{
 *	data: any[], 										// Data to show
 *	gradient: boolean, 							// Fill elements with a gradient instead of a solid color. Default: false.
 *	showLegend: boolean, 						// If to show the legend. Default: true.
 *	colorScheme: ChartsColorScheme, // Array with string css color values. Default: ['#5AA454', '#A10A28', '#C7B42C', '#AAAAAA'].
 *	showXAxis: boolean, 						// If to show the x axis. Default: true.
 *	showYAxis: boolean, 						// If to show the y axis. Default: true.
 *	showXAxisLabel: boolean, 				// If to show the x axis label. Default: true.
 *	showYAxisLabel: boolean, 				// If to show the y axis label. Default: true.
 *	xAxisLabel: string, 						// The x axis label
 *	yAxisLabel: string, 						// The y axis label
 *	orientation: string,						// Horizontal or vertical bar chart orientation. Default: 'vertical'.
 *	grouped: boolean,								// If to show bar chart in grouped mode. Default: false.
 *	legendPosition: string,					// Legend position. Can be: top, right, bottom, left. Default: right.
 *	chartAlignment: string,					// Alignment of chart. Can be: start, center, end. Default: start.
 * }</pre>
 * <p>Example of data object for not grouped bar chart:</p>
 * <pre>data = [
 *  { "name": "Germany", "value": 8940000 },
 *  { "name": "USA", "value": 5000000 },
 *  { "name": "France", "value": 7200000 }
 * ]</pre>
 * <p>Example of data object for grouped bar chart:</p>
 * <pre>data = [
 *  {
 *    "name": "Germany",
 *    "series": [
 *    	{ "name": "2010", "value": 7300000 },
 *    	{ "name": "2011", "value": 8940000 }
 *    ]
 *  },
 *  {
 *    "name": "USA",
 *    "series": [
 *    	{ "name": "2010", "value": 7870000 },
 *    	{ "name": "2011", "value": 8270000 }
 *    ]
 *  },
 *  {
 *    "name": "France",
 *    "series": [
 *    	{ "name": "2010", "value": 5000002 },
 *    	{ "name": "2011", "value": 5800000 }
 *     ]
 *   }
 * ]</pre>
 * <p>Example of chart options:</p>
 * <pre>myChartModel = new BarChartModel({
 *	data: this.data,
 *	orientation: 'horizontal',
 *	grouped: true
 * });</pre>
 * <p>Styling</p>
 * <pre>{
 *	barsContainerWidth: string, 							// It is css value for chart bars container width. Default: '100%'.
 *	barsContainerHeight: string', 						// It is css value for chart bars container height. Default: '200px.
 *	container: StylingObject, 	// Styling of chart container
 * }</pre>
 * <p>Example of styling object:</p>
 * <pre>chartStylingModel = new ChartStylingModel({
 *	barsContainerWidth: '100%',
 *	barsContainerHeight: '200px',
 *	container: {
 *		class: 'my-chart-class'
 *	}
 * });</pre>
 */
export declare class CfBarChartComponent extends CfChartComponent implements OnInit, OnChanges, AfterViewInit {
    elementRef: ElementRef;
    /**@hidden */ eventService: CfEventService;
    /** @hidden*/
    cfChartHost: any;
    /** @hidden*/
    cfNgxChart: any;
    /** @hidden*/
    cfBarChart: BarChartModel;
    /**
   * <p>Horizontal or vertical bar chart orientation. Default: 'vertical'.</p>
   */
    orientation: string;
    /**
   * <p>Defines if the chart is grouped. Default: false.</p>
   */
    grouped: boolean;
    /** @hidden*/
    constructor(elementRef: ElementRef, /**@hidden */ templateService: TemplateService, 
        /**@hidden */ eventService: CfEventService);
    /** @hidden*/
    ngOnInit(): void;
    /** @hidden*/
    ngAfterViewInit(): void;
    /** @hidden
   * <p> Update the properties object with the changes on the inputs to keep the component dynamic.</p>
   * @param changes
   */
    ngOnChanges(changes: any): void;
    /** @hidden*/
    getContainerClass(): string;
}
