import * as React from 'react';
import { PropertyUpdatedEventArgs } from "igniteui-react-core/ES5/igr-property-updated-event-args";
import { IgrSeries } from "./igr-series";
import { BrushScale } from "./BrushScale";
/**
 * Represents a base class for brush scales.
*/
export declare class IgrBrushScale<P extends IIgrBrushScaleProps = IIgrBrushScaleProps> extends React.Component<P, {}> {
    protected createImplementation(): BrushScale;
    protected _implementation: any;
    readonly i: BrushScale;
    private onImplementationCreated;
    constructor(props: P);
    private _hasUserValues;
    protected readonly hasUserValues: Set<string>;
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    render(): any;
    /**
     * Gets the brushes collection used by this scale.
    */
    brushes: string[];
    /**
     * Gets the status of the scale
    */
    readonly isReady: boolean;
    /**
     * Checks if this item is a BrushScale
    */
    readonly isBrushScale: boolean;
    /**
     * Registers a series with the scale. Under normal circumstances you should not need to call this manually.
    
    * @param series  * The series to register with the scale.
    */
    registerSeries(series: IgrSeries): void;
    /**
     * Unregisters a series with the scale. Under normal circumstances you should not need to call this manually.
    
    * @param series  * The series to unregister from the scale.
    */
    unregisterSeries(series: IgrSeries): void;
    /**
     * Gets a brush from the brushes collection by index.
    
    */
    getBrush(index: number): string;
    private _propertyUpdated;
    private _propertyUpdated_wrapped;
    /**
     * Event raised when a property (including "effective" and non-dependency property) value changes.
    */
    propertyUpdated: (s: IgrBrushScale, e: PropertyUpdatedEventArgs) => void;
}
export interface IIgrBrushScaleProps {
    /**
     * Gets the brushes collection used by this scale.
    */
    brushes?: string[] | string;
    /**
     * Event raised when a property (including "effective" and non-dependency property) value changes.
    */
    propertyUpdated?: (s: IgrBrushScale, e: PropertyUpdatedEventArgs) => void;
}
