import * as React from 'react';
import { IgPoint } from "igniteui-react-core";
import { StackedSeriesBase } from "./StackedSeriesBase";
import { IgrStackedSeriesCreatedEventArgs } from './igr-stacked-series-created-event-args';
import { IgrCategorySeries } from './igr-category-series';
import { ReactRenderer } from "igniteui-react-core";
import { IgrStackedFragmentSeries } from './igr-stacked-fragment-series';
import { IgrStackedSeriesCollection } from './igr-stacked-series-collection';
/**
 * Represents a base class for stacked series.
*/
export declare abstract class IgrStackedSeriesBase<P extends IIgrStackedSeriesBaseProps = IIgrStackedSeriesBaseProps> extends IgrCategorySeries<P> {
    protected createImplementation(): StackedSeriesBase;
    protected _implementation: any;
    get i(): StackedSeriesBase;
    constructor(props: P);
    protected initializeProperties(): void;
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    render(): React.DetailedReactHTMLElement<{
        children: any[];
    }, HTMLElement>;
    static _createFromInternal(internal: any): IgrStackedSeriesBase;
    private _updateContentChildren;
    private _contentChildrenManager;
    /**
     * The series actually present in the chart. Do not directly modify this array.
     * This array's contents can be modified by causing React to reproject the child content.
     * Or adding and removing series from the manual series collection on the series property.
     */
    actualSeries: IgrStackedFragmentSeries[];
    contentSeries: IgrStackedFragmentSeries[];
    private _series;
    private _seriesAdapter;
    /**
     * A collection or manually added series for the chart.
    */
    get series(): IgrStackedSeriesCollection;
    protected _provideRenderer(renderer: ReactRenderer): void;
    /**
 * Gets or sets whether series should be automatically generated. Reqiures the use of GroupBy as the ItemsSource.
*/
    get autoGenerateSeries(): boolean;
    set autoGenerateSeries(v: boolean);
    /**
     * Gets or sets whether the order of the fragment series should be reversed in the legend.
    */
    get reverseLegendOrder(): boolean;
    set reverseLegendOrder(v: boolean);
    /**
     * Checks if this series is a stacked series
    */
    get isStacked(): boolean;
    get isPercentBased(): boolean;
    findByName(name: string): any;
    /**
 * Called to notify about changes to indexed-based properties, e.g. Brushes, Outlines, MarkerBrushes, MarkerOutlines and refresh series

*/
    notifyIndexedPropertiesChanged(): void;
    /**
     * Simulates a pointer hover over the series surface.
    
    * @param point  * The pointer position relative to the series viewport over which to hover.
    */
    simulateHover(point: IgPoint): void;
    /**
     * Scrolls the series to display the item for the specified data item.
     * The series is scrolled by the minimum amount required to place the specified data item within
     * the central 80% of the visible axis.
    
    * @param item  * The data item (item) to scroll to.
    */
    scrollIntoView(item: any): boolean;
    replayTransitionIn(): void;
    private _seriesCreated;
    private _seriesCreated_wrapped;
    /**
     * Event raised when a new fragment series is automatically generated.
    */
    get seriesCreated(): (s: IgrStackedSeriesBase, e: IgrStackedSeriesCreatedEventArgs) => void;
    set seriesCreated(ev: (s: IgrStackedSeriesBase, e: IgrStackedSeriesCreatedEventArgs) => void);
}
export interface IIgrStackedSeriesBaseProps {
    /**
     * Sets or gets a required unique name for the series.
     * */
    name: string;
    children?: React.ReactNode;
    /**
 * Gets or sets whether series should be automatically generated. Reqiures the use of GroupBy as the ItemsSource.
*/
    autoGenerateSeries?: boolean | string;
    /**
     * Gets or sets whether the order of the fragment series should be reversed in the legend.
    */
    reverseLegendOrder?: boolean | string;
    /**
 * Event raised when a new fragment series is automatically generated.
*/
    seriesCreated?: (s: IgrStackedSeriesBase, e: IgrStackedSeriesCreatedEventArgs) => void;
}
