import * as React from 'react';
import { XIcon } from "./XIcon";
import { BaseControlTheme } from "igniteui-react-core";
export declare class IgrXIcon extends React.Component<IIgrXIconProps> {
    private _container;
    private _initialized;
    private _elRef;
    private _portalManager;
    private _wrapper;
    private _getMainRef;
    render(): React.DetailedReactHTMLElement<{
        className: string;
        ref: (ref: any) => void;
        children: any[];
    }, any>;
    private requestRender;
    constructor(props: IIgrXIconProps);
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    protected initializeProperties(): void;
    updateStyle(): void;
    destroy(): void;
    componentWillUnmount(): void;
    private _implementation;
    componentDidMount(): void;
    initializeContent(): void;
    protected createImplementation(): XIcon;
    get i(): XIcon;
    private _icon;
    /**
 * Gets or sets the base built in theme to use for the button.
*/
    get baseTheme(): BaseControlTheme;
    set baseTheme(v: BaseControlTheme);
    /**
     * Gets the fill color currently used by the icon.
    */
    get actualFill(): string;
    set actualFill(v: string);
    /**
     * Gets the stroke color currently used by the icon.
    */
    get actualStroke(): string;
    set actualStroke(v: string);
    /**
     * Gets the text color currently used by the icon.
    */
    get actualTextColor(): string;
    set actualTextColor(v: string);
    /**
     * Gets the stroke width currently used by the icon.
    */
    get actualStrokeWidth(): number;
    set actualStrokeWidth(v: number);
    /**
     * Gets or sets the fill color to use for the icon.
    */
    get fill(): string;
    set fill(v: string);
    /**
     * Gets or sets the stroke color to use for the icon.
    */
    get stroke(): string;
    set stroke(v: string);
    /**
     * Gets or sets the stroke thickness to use for the icon.
    */
    get strokeWidth(): number;
    set strokeWidth(v: number);
    /**
     * Gets or sets the text color to use for the icon.
    */
    get textColor(): string;
    set textColor(v: string);
    /**
     * Gets or sets the fill color to use when the icon is hovered.
    */
    get hoverFill(): string;
    set hoverFill(v: string);
    /**
     * Gets or sets the stroke color to use when the icon is hovered.
    */
    get hoverStroke(): string;
    set hoverStroke(v: string);
    /**
     * Gets or sets the stroke thickness to use when the icon is hovered.
    */
    get hoverStrokeThickness(): number;
    set hoverStrokeThickness(v: number);
    /**
     * Gets or sets the text color to use when the icon is hovered.
    */
    get hoverTextColor(): string;
    set hoverTextColor(v: string);
    /**
     * Gets or sets a collection of fill colors to use in the icon.
     * These colors can be used by SVG elements that have been marked with the
     * ig-icon-fill-#
     * class where # is a number from 0 to count - 1.
    */
    get fillColors(): string[];
    set fillColors(v: string[]);
    /**
     * Gets or sets a collection of stroke colors to use in the icon.
     * These colors can be used by SVG elements that have been marked with the
     * ig-icon-stroke-#
     * class where # is a number from 0 to count - 1.
    */
    get strokeColors(): string[];
    set strokeColors(v: string[]);
    /**
     * Gets or sets a primary fill color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-primary-fill
     * class.
    */
    get primaryFillColor(): string;
    set primaryFillColor(v: string);
    /**
     * Gets or sets a primary stroke color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-primary-stroke
     * class.
    */
    get primaryStrokeColor(): string;
    set primaryStrokeColor(v: string);
    /**
     * Gets or sets a secondary fill color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-secondary-fill
     * class.
    */
    get secondaryFillColor(): string;
    set secondaryFillColor(v: string);
    /**
     * Gets or sets a secondary stroke color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-secondary-stroke
     * class.
    */
    get secondaryStrokeColor(): string;
    set secondaryStrokeColor(v: string);
    /**
     * Gets or sets the image source for the icon. Used if none of the other icon types are not used.
    */
    get source(): any;
    set source(v: any);
    /**
     * Gets or sets data url for the icon to use.
    */
    get dataURL(): string;
    set dataURL(v: string);
    /**
     * Gets or sets path data for the icon to use.
    */
    get svgPath(): string;
    set svgPath(v: string);
    /**
     * Gets or sets svg text for the icon to use.
    */
    get svg(): string;
    set svg(v: string);
    /**
     * Gets or sets an array of path data for the icon to use.
    */
    get sVGPaths(): string[];
    set sVGPaths(v: string[]);
    /**
     * Gets or sets the use for the button.
    */
    get textStyle(): string;
    set textStyle(v: string);
    /**
     * Gets or sets the id to use for the checkbox.
    */
    get id(): string;
    set id(v: string);
    /**
     * Gets or sets TabIndex to use for the checkbox.
    */
    get tabIndex(): number;
    set tabIndex(v: number);
    /**
     * Gets or sets the value of the aria-label attribute.
    */
    get ariaLabel(): string;
    set ariaLabel(v: string);
    /**
     * Gets or sets whether the icon is hovered.
    */
    get isHover(): boolean;
    set isHover(v: boolean);
    /**
     * Gets or sets whether the checkbox is disabled.
    */
    get disabled(): boolean;
    set disabled(v: boolean);
    get opacity(): number;
    set opacity(v: number);
    /**
     * Gets or sets the viewbox left for the svg icon.
    */
    get viewBoxLeft(): number;
    set viewBoxLeft(v: number);
    /**
     * Gets or sets the viewbox top for the svg icon.
    */
    get viewBoxTop(): number;
    set viewBoxTop(v: number);
    /**
     * Gets or sets the viewbox width for the svg icon.
    */
    get viewBoxWidth(): number;
    set viewBoxWidth(v: number);
    /**
     * Gets or sets the viewbox height for the svg icon.
    */
    get viewBoxHeight(): number;
    set viewBoxHeight(v: number);
    /**
     * Gets or sets the width of the icon.
    */
    get width(): number;
    set width(v: number);
    /**
     * Gets or sets the height of the icon.
    */
    get height(): number;
    set height(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;
    onDetachedFromUI(): void;
    onAttachedToUI(): void;
    /**
     * Exports visual information about the current state of the grid.
    
    */
    exportVisualModel(): any;
    /**
     * Returns a serialized copy of the exported visual model
    
    */
    exportSerializedVisualModel(): string;
}
export interface IIgrXIconProps {
    children?: React.ReactNode;
    /**
 * Gets or sets the base built in theme to use for the button.
*/
    baseTheme?: BaseControlTheme | string;
    /**
     * Gets the fill color currently used by the icon.
    */
    actualFill?: string;
    /**
     * Gets the stroke color currently used by the icon.
    */
    actualStroke?: string;
    /**
     * Gets the text color currently used by the icon.
    */
    actualTextColor?: string;
    /**
     * Gets the stroke width currently used by the icon.
    */
    actualStrokeWidth?: number | string;
    /**
     * Gets or sets the fill color to use for the icon.
    */
    fill?: string;
    /**
     * Gets or sets the stroke color to use for the icon.
    */
    stroke?: string;
    /**
     * Gets or sets the stroke thickness to use for the icon.
    */
    strokeWidth?: number | string;
    /**
     * Gets or sets the text color to use for the icon.
    */
    textColor?: string;
    /**
     * Gets or sets the fill color to use when the icon is hovered.
    */
    hoverFill?: string;
    /**
     * Gets or sets the stroke color to use when the icon is hovered.
    */
    hoverStroke?: string;
    /**
     * Gets or sets the stroke thickness to use when the icon is hovered.
    */
    hoverStrokeThickness?: number | string;
    /**
     * Gets or sets the text color to use when the icon is hovered.
    */
    hoverTextColor?: string;
    /**
     * Gets or sets a collection of fill colors to use in the icon.
     * These colors can be used by SVG elements that have been marked with the
     * ig-icon-fill-#
     * class where # is a number from 0 to count - 1.
    */
    fillColors?: string[] | string;
    /**
     * Gets or sets a collection of stroke colors to use in the icon.
     * These colors can be used by SVG elements that have been marked with the
     * ig-icon-stroke-#
     * class where # is a number from 0 to count - 1.
    */
    strokeColors?: string[] | string;
    /**
     * Gets or sets a primary fill color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-primary-fill
     * class.
    */
    primaryFillColor?: string;
    /**
     * Gets or sets a primary stroke color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-primary-stroke
     * class.
    */
    primaryStrokeColor?: string;
    /**
     * Gets or sets a secondary fill color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-secondary-fill
     * class.
    */
    secondaryFillColor?: string;
    /**
     * Gets or sets a secondary stroke color for the icon.
     * This color is used by SVG elements that have been marked
     * with the
     * ig-icon-secondary-stroke
     * class.
    */
    secondaryStrokeColor?: string;
    /**
     * Gets or sets the image source for the icon. Used if none of the other icon types are not used.
    */
    source?: any;
    /**
     * Gets or sets data url for the icon to use.
    */
    dataURL?: string;
    /**
     * Gets or sets path data for the icon to use.
    */
    svgPath?: string;
    /**
     * Gets or sets svg text for the icon to use.
    */
    svg?: string;
    /**
     * Gets or sets an array of path data for the icon to use.
    */
    sVGPaths?: string[];
    /**
     * Gets or sets the use for the button.
    */
    textStyle?: string;
    /**
     * Gets or sets the id to use for the checkbox.
    */
    id?: string;
    /**
     * Gets or sets TabIndex to use for the checkbox.
    */
    tabIndex?: number | string;
    /**
     * Gets or sets the value of the aria-label attribute.
    */
    ariaLabel?: string;
    /**
     * Gets or sets whether the icon is hovered.
    */
    isHover?: boolean | string;
    /**
     * Gets or sets whether the checkbox is disabled.
    */
    disabled?: boolean | string;
    opacity?: number | string;
    /**
     * Gets or sets the viewbox left for the svg icon.
    */
    viewBoxLeft?: number | string;
    /**
     * Gets or sets the viewbox top for the svg icon.
    */
    viewBoxTop?: number | string;
    /**
     * Gets or sets the viewbox width for the svg icon.
    */
    viewBoxWidth?: number | string;
    /**
     * Gets or sets the viewbox height for the svg icon.
    */
    viewBoxHeight?: number | string;
    /**
     * Gets or sets the width of the icon.
    */
    width?: number | string;
    /**
     * Gets or sets the height of the icon.
    */
    height?: number | string;
}
