import * as React from 'react';
import { LegendBase } from './LegendBase';
import { IgrLegendMouseButtonEventArgs } from "./igr-legend-mouse-button-event-args";
import { IgrLegendMouseEventArgs } from "./igr-legend-mouse-event-args";
export declare const LegendBaseStyles: string[];
/**
 * Represents the base class for a legend in IgxDataChartComponent.
*/
export declare abstract class IgrLegendBase<P extends IIgrLegendBaseProps = IIgrLegendBaseProps> extends React.Component<P, {}> {
    protected _zoneRunner: (act: () => void) => void;
    protected _implementation: any;
    readonly i: LegendBase;
    private onImplementationCreated;
    constructor(props: P);
    private static _checked;
    private static ensureCss;
    protected abstract createImplementation(): any;
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    render(): any;
    /**
 * Gets if the legend is item-wise.
*/
    readonly isItemwise: boolean;
    /**
     * Gets if the legend is a financial legend.
    */
    readonly isFinancial: boolean;
    findByName(name: string): any;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected readonly hasUserValues: Set<string>;
    protected __m(propertyName: string): void;
    protected _stylingContainer: any;
    protected _stylingParent: any;
    protected _inStyling: boolean;
    protected _styling(container: any, component: any, parent?: any): void;
    /**
 * Returns the legend visuals expressed as a serialized string.

*/
    exportSerializedVisualData(): string;
}
export interface IIgrLegendBaseProps {
    /**
 * Event raised when the left mouse button is pressed while the mouse pointer is over a legend item
 * in this Legend.
*/
    legendItemMouseLeftButtonDown?: (s: IgrLegendBase, e: IgrLegendMouseButtonEventArgs) => void;
    /**
     * Event raised when the left mouse button is released while the mouse pointer is over a legend item
     * in this Legend.
    */
    legendItemMouseLeftButtonUp?: (s: IgrLegendBase, e: IgrLegendMouseButtonEventArgs) => void;
    /**
     * Event raised when the mouse pointer enters a legend item of this legend.
    */
    legendItemMouseEnter?: (s: IgrLegendBase, e: IgrLegendMouseEventArgs) => void;
    /**
     * Event raised when the mouse pointer leaves a legend item of this legend.
    */
    legendItemMouseLeave?: (s: IgrLegendBase, e: IgrLegendMouseEventArgs) => void;
    /**
     * Event raised when the mouse pointer moves over a legend item of this legend.
    */
    legendItemMouseMove?: (s: IgrLegendBase, e: IgrLegendMouseEventArgs) => void;
}
