import { Base, INotifyPropertyChanged, PropertyChangedEventArgs, Type } from "igniteui-webcomponents-core";
import { PropertyEditorValueType } from "./PropertyEditorValueType";
import { ObservableCollection$1 } from "igniteui-webcomponents-core";
import { TypeDescriptionContext } from "igniteui-webcomponents-core";
/**
 * @hidden
 */
export declare class PropertyEditorPropertyDescription extends Base implements INotifyPropertyChanged {
    static $t: Type;
    private u;
    y: string;
    private s;
    w: string;
    private j;
    k: PropertyEditorValueType;
    private t;
    x: string;
    private l;
    n: boolean;
    private r;
    v: string;
    private a;
    c: string[];
    private b;
    d: string[];
    private o;
    q: any;
    private f;
    g: PropertyEditorDescriptionObject;
    private h;
    i: PropertyEditorDescriptionObjectCollection;
    e: PropertyEditorDataSource;
    private z;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    m(a: PropertyEditorPropertyDescription): boolean;
    p(a: string, b: boolean): any;
}
/**
 * @hidden
 */
export declare class PropertyEditorDescriptionObject extends Base {
    static $t: Type;
    b: string;
    a: PropertyEditorPropertyDescriptionCollection;
}
/**
 * @hidden
 */
export declare class PropertyEditorDescriptionObjectCollection extends ObservableCollection$1<PropertyEditorDescriptionObject> {
    static $t: Type;
    constructor();
}
/**
 * @hidden
 */
export declare class PropertyEditorPropertyDescriptionCollection extends ObservableCollection$1<PropertyEditorPropertyDescription> {
    static $t: Type;
    constructor();
}
/**
 * @hidden
 */
export declare class PropertyEditorDataSource extends Base implements INotifyPropertyChanged {
    static $t: Type;
    private i;
    l: string;
    private a;
    b: TypeDescriptionContext;
    private f;
    g: PropertyEditorPropertyDescriptionCollection;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    protected n(a: string, b: any, c: any): void;
    protected o(a: string, b: any, c: any): void;
    private e;
    private h;
    private p;
    d(a: string, b: boolean): PropertyEditorPropertyDescription;
    private c;
}
