import * as React from 'react';
import { IgrPropertyUpdatedEventArgs } from "igniteui-react-core";
import { SizeScale } from "./SizeScale";
import { ContentChildrenManager } from "igniteui-react-core";
/**
 * Represents a scale that is used determine an object's size.
*/
export declare class IgrSizeScale<P extends IIgrSizeScaleProps = IIgrSizeScaleProps> extends React.Component<P, {}> {
    protected createImplementation(): SizeScale;
    protected _implementation: any;
    /**
     * @hidden
     */
    get i(): SizeScale; /**
                                 * @hidden
                                 */
    static _createFromInternal(internal: any): IgrSizeScale;
    private onImplementationCreated;
    protected _contentChildrenManager: ContentChildrenManager;
    constructor(props: P);
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    render(): any;
    /**
     * Gets or sets global minimum value that will be mapped to MinumumValue of this scale
    */
    get globalMinimum(): number;
    set globalMinimum(v: number);
    /**
     * Gets or sets global maximum value that will be mapped to MaxumumValue of this scale
    */
    get globalMaximum(): number;
    set globalMaximum(v: number);
    /**
     * Gets or sets the minimum size (in pixels) for this scale.
    */
    get minimumValue(): number;
    set minimumValue(v: number);
    /**
     * Gets or sets the maximum size (in pixels) for this scale.
    */
    get maximumValue(): number;
    set maximumValue(v: number);
    /**
     * Gets or sets whether the scale is logarithmic.
    */
    get isLogarithmic(): boolean;
    set isLogarithmic(v: boolean);
    /**
     * Gets or sets the logarithm base for this scale.
    */
    get logarithmBase(): number;
    set logarithmBase(v: number);
    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;
    getCurrentGlobalMinimum(): number;
    getCurrentGlobalMaximum(): number;
    private _propertyUpdated;
    private _propertyUpdated_wrapped;
    /**
     * Event raised when a property (including "effective" and non-dependency property) value changes.
    */
    get propertyUpdated(): (s: IgrSizeScale, e: IgrPropertyUpdatedEventArgs) => void;
    set propertyUpdated(ev: (s: IgrSizeScale, e: IgrPropertyUpdatedEventArgs) => void);
}
export interface IIgrSizeScaleProps {
    children?: React.ReactNode;
    /**
     * Gets or sets global minimum value that will be mapped to MinumumValue of this scale
    */
    globalMinimum?: number | string;
    /**
     * Gets or sets global maximum value that will be mapped to MaxumumValue of this scale
    */
    globalMaximum?: number | string;
    /**
     * Gets or sets the minimum size (in pixels) for this scale.
    */
    minimumValue?: number | string;
    /**
     * Gets or sets the maximum size (in pixels) for this scale.
    */
    maximumValue?: number | string;
    /**
     * Gets or sets whether the scale is logarithmic.
    */
    isLogarithmic?: boolean | string;
    /**
     * Gets or sets the logarithm base for this scale.
    */
    logarithmBase?: number | string;
    /**
     * Event raised when a property (including "effective" and non-dependency property) value changes.
    */
    propertyUpdated?: (s: IgrSizeScale, e: IgrPropertyUpdatedEventArgs) => void;
}
