import * as React from 'react';
import { IgPoint } from "igniteui-react-core";
import { LegendBase } from './LegendBase';
import { IgrLegendMouseButtonEventArgs } from "./igr-legend-mouse-button-event-args";
import { IgrLegendMouseEventArgs } from "./igr-legend-mouse-event-args";
import { IgrLegendTextContentChangedEventArgs } from "./igr-legend-text-content-changed-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;
    get 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.
*/
    get isItemwise(): boolean;
    /**
     * Gets if the legend is a financial legend.
    */
    get isFinancial(): boolean;
    findByName(name: string): any;
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected get 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;
    /**
 * Use to force the Legend to check for differences in text content.

*/
    flushTextContentChangedCheck(): void;
    /**
     * Returns the legend visuals expressed as a serialized string.
    
    */
    exportSerializedVisualData(): string;
    simulateHover(point: IgPoint): void;
    simulateClick(point: IgPoint): void;
    simulateMouseLeave(): void;
}
export interface IIgrLegendBaseProps {
    children?: React.ReactNode;
    /**
 * 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;
    /**
     * Event raised when this legend's required size changes.
    */
    legendTextContentChanged?: (s: IgrLegendBase, e: IgrLegendTextContentChangedEventArgs) => void;
}
