import * as React from 'react';
import { IgSize } from "igniteui-react-core";
import { PropertyEditor } from './PropertyEditor';
import { BaseControlTheme } from "igniteui-react-core";
import { ControlDisplayDensity } from "igniteui-react-core";
import { ComponentRenderer } from "igniteui-react-core";
import { TypeDescriptionContext } from "igniteui-react-core";
import { IgrPropertyEditorPropertyDescriptionCollection } from "igniteui-react-layouts";
import { IgrPropertyEditorPropertyDescription } from "igniteui-react-layouts";
import { InputGroupDisplayType } from "igniteui-react-inputs";
export declare class IgrPropertyEditor extends React.Component<IIgrPropertyEditorProps> {
    private _implementation;
    private _reactRenderer;
    private _height;
    private _width;
    private _initialized;
    private _elRef;
    private _portalManager;
    set height(value: string);
    get height(): string;
    set width(value: string);
    get width(): string;
    private _getMainRef;
    private _contentChildrenManager;
    private _updateContentChildren;
    contentProperties: IgrPropertyEditorPropertyDescription[];
    /**
    * The style mappings actually present in the treemap. Do not directly modify this array.
    * This array's contents can be modified by causing React to reproject the child content.
    * Or adding and removing ranges from the manual ranges collection on the ranges property.
    */
    actualProperties: IgrPropertyEditorPropertyDescription[];
    private _properties;
    private _propertiesAdapter;
    /**
     * A collection of manually added style mappings for the treemap.
    */
    get properties(): IgrPropertyEditorPropertyDescriptionCollection;
    render(): React.DetailedReactHTMLElement<{
        ref: (ref: any) => void;
        className: string;
        children: any[];
    }, any>;
    private verifyReferences;
    private requestRender;
    constructor(props: IIgrPropertyEditorProps);
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    protected initializeProperties(): void;
    updateStyle(): void;
    componentWillUnmount(): void;
    componentDidMount(): void;
    initializeContent(): void;
    protected createImplementation(): PropertyEditor;
    get i(): PropertyEditor;
    private _actualDataSource;
    /**
     * Gets the actaul data or data source instance to which to bind the grid.
    */
    get actualDataSource(): IgrPropertyEditorPropertyDescriptionCollection;
    set actualDataSource(v: IgrPropertyEditorPropertyDescriptionCollection);
    /**
     * Gets or Sets the property name that contains the values.
    */
    get filterPlaceholderText(): string;
    set filterPlaceholderText(v: string);
    /**
     * Gets or Sets the property name that contains the values.
    */
    get searchInputType(): InputGroupDisplayType;
    set searchInputType(v: InputGroupDisplayType);
    /**
     * Gets or Sets the property name that contains the values.
    */
    get rowHeight(): number;
    set rowHeight(v: number);
    /**
     * Gets or Sets the property name that contains the values.
    */
    get cellTextStyle(): string;
    set cellTextStyle(v: string);
    /**
     * Gets or Sets the property name that contains the values.
    */
    get baseTheme(): BaseControlTheme;
    set baseTheme(v: BaseControlTheme);
    /**
     * Gets or Sets the property name that contains the values.
    */
    get density(): ControlDisplayDensity;
    set density(v: ControlDisplayDensity);
    get actualDescriptionContext(): TypeDescriptionContext;
    set actualDescriptionContext(v: TypeDescriptionContext);
    get descriptionContext(): TypeDescriptionContext;
    set descriptionContext(v: TypeDescriptionContext);
    get componentRenderer(): ComponentRenderer;
    set componentRenderer(v: ComponentRenderer);
    get target(): any;
    set target(v: any);
    get descriptionType(): string;
    set descriptionType(v: string);
    get isHorizontal(): boolean;
    set isHorizontal(v: boolean);
    get isWrappingEnabled(): boolean;
    set isWrappingEnabled(v: boolean);
    get isIndirectModeEnabled(): boolean;
    set isIndirectModeEnabled(v: boolean);
    /**
     * Gets or sets the color to use for the background of the component.
    */
    get backgroundColor(): string;
    set backgroundColor(v: string);
    /**
     * Gets or sets the color to use for the text of the component.
    */
    get textColor(): string;
    set textColor(v: string);
    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;
    getDesiredSize(): IgSize;
    notifySetItem(index: number, oldItem: any, newItem: any): void;
    /**
     * Manually notifies the checkboxlist's grid that the data it has bound to has been cleared and needs to be re-examined.
     * This should not be called if the data that the grid is bound to is already observable.
    
    */
    notifyClearItems(): void;
    notifyInsertItem(index: number, newItem: any): void;
    notifyRemoveItem(index: number, oldItem: any): void;
}
export interface IIgrPropertyEditorProps {
    width?: string;
    height?: string;
    children?: React.ReactNode;
    /**
 * Gets the actaul data or data source instance to which to bind the grid.
*/
    actualDataSource?: IgrPropertyEditorPropertyDescriptionCollection | string;
    /**
     * Gets or Sets the property name that contains the values.
    */
    filterPlaceholderText?: string;
    /**
     * Gets or Sets the property name that contains the values.
    */
    searchInputType?: InputGroupDisplayType | string;
    /**
     * Gets or Sets the property name that contains the values.
    */
    rowHeight?: number | string;
    /**
     * Gets or Sets the property name that contains the values.
    */
    cellTextStyle?: string;
    /**
     * Gets or Sets the property name that contains the values.
    */
    baseTheme?: BaseControlTheme | string;
    /**
     * Gets or Sets the property name that contains the values.
    */
    density?: ControlDisplayDensity | string;
    actualDescriptionContext?: TypeDescriptionContext;
    descriptionContext?: TypeDescriptionContext;
    componentRenderer?: ComponentRenderer;
    target?: any;
    descriptionType?: string;
    isHorizontal?: boolean | string;
    isWrappingEnabled?: boolean | string;
    isIndirectModeEnabled?: boolean | string;
    /**
     * Gets or sets the color to use for the background of the component.
    */
    backgroundColor?: string;
    /**
     * Gets or sets the color to use for the text of the component.
    */
    textColor?: string;
}
