import { Base, Type } from "./type";
import { IComponentRendererAdapter } from "./IComponentRendererAdapter";
import { TypeDescriptionContext } from "./TypeDescriptionContext";
import { ITypeDescriptionPropertyTransforms } from "./ITypeDescriptionPropertyTransforms";
import { TypeDescriptionCleanups } from "./TypeDescriptionCleanups";
import { Dictionary$2 } from "./Dictionary$2";
import { Description } from "./Description";
import { DescriptionTreeNode } from "./DescriptionTreeNode";
import { DescriptionRef } from "./DescriptionRef";
import { TypeDescriptionPlatform } from "./TypeDescriptionPlatform";
import { JsonDictionaryItem } from "./JsonDictionaryItem";
import { DescriptionRefTargetInfo } from "./DescriptionRefTargetInfo";
/**
 * @hidden
 */
export declare class ComponentRenderer extends Base {
    static $t: Type;
    private static _defaultInstance;
    static get defaultInstance(): ComponentRenderer;
    static set defaultInstance(a: ComponentRenderer);
    private _adapter;
    get adapter(): IComponentRendererAdapter;
    set adapter(a: IComponentRendererAdapter);
    private _context;
    get context(): TypeDescriptionContext;
    set context(a: TypeDescriptionContext);
    private _isProceedOnErrorEnabled;
    get isProceedOnErrorEnabled(): boolean;
    set isProceedOnErrorEnabled(a: boolean);
    i: ITypeDescriptionPropertyTransforms;
    j: TypeDescriptionCleanups;
    static platform: TypeDescriptionPlatform;
    constructor();
    private h;
    toJson(a: (arg1: any) => string): string;
    private dh;
    private di;
    private x;
    private u;
    private dg;
    private o;
    createObjectFromJson(a: string, b: any): any;
    loadJson(a: string, b: (arg1: string) => any): void;
    loadJsonOverlay(a: string, b: (arg1: string) => any, c: (arg1: string) => any): void;
    loadJsonDelta(a: string, b: (arg1: string) => any, c: boolean): void;
    protected ap(): boolean;
    protected cu(a: boolean): void;
    private cs;
    provideRefValueFromJson(a: any, b: string, c: string): void;
    protected ba(): (arg1: string) => string;
    af(a: JsonDictionaryItem): boolean;
    ac(a: JsonDictionaryItem): boolean;
    aj(a: JsonDictionaryItem): boolean;
    ad(a: JsonDictionaryItem): boolean;
    ae(a: JsonDictionaryItem): boolean;
    private b7;
    private co;
    private cp;
    private cb;
    private b9;
    private a;
    private bt;
    private aw;
    private ax;
    private ay;
    private av;
    private at;
    private a1;
    get a5(): Dictionary$2<any, ContainerState>;
    private az;
    private au;
    private as;
    private a0;
    private a2;
    private a4;
    cleanup(a: any, b: boolean): void;
    render(a: Description, b: any): void;
    private dd;
    private cv;
    private db;
    provideRefValue(a: any, b: string, c: any): void;
    removeRefValue(a: any, b: string): void;
    private c9;
    clearRefValues(a: any): void;
    private v;
    queueForIdle(a: any, b: () => void): void;
    tryFlushIdleActions(a: any): void;
    private dc;
    private df;
    private dl;
    private cn;
    private cw;
    private cx;
    private z;
    private ak;
    private ar;
    private b8;
    private b6;
    private cc;
    private ao;
    private bw;
    private br;
    private bs;
    private bq;
    private bp;
    private bo;
    private bn;
    private bm;
    private bl;
    e(a: string, b: ContainerState): DescriptionRef;
    private b2;
    private bk;
    private b1;
    private bi;
    private b0;
    private b3;
    private b5;
    private bh;
    private bg;
    private bf;
    private b4;
    private be;
    private bd;
    private a8;
    addTargetPropertyUpdatingListener(a: (propertyPath: string, target: any, newValue: any) => boolean): void;
    removeTargetPropertyUpdatingListener(a: (propertyPath: string, target: any, newValue: any) => boolean): void;
    private a3;
    addPropertyUpdatingListener(a: string, b: (propertyName: string, target: any, newValue: any) => void): void;
    private a6;
    addReferenceLookupListener(a: (container: any, refType: string, id: string) => any): void;
    removeReferenceLookupListener(a: (container: any, refType: string, id: string) => any): void;
    removePropertyUpdatingListener(a: string, b: (propertyName: string, target: any, newValue: any) => void): void;
    private a7;
    addNamespaceLookupListener(a: (container: any) => string): void;
    removeNamespaceLookupListener(a: (container: any) => string): void;
    private bc;
    private dj;
    hasUserRef(a: string): boolean;
    private _shouldNamespaceSystemRefValues;
    get shouldNamespaceSystemRefValues(): boolean;
    set shouldNamespaceSystemRefValues(a: boolean);
    cz(a: any, b: string, c: any, d: boolean): void;
    removeRefValueCore(a: any, b: string, c: boolean): void;
    clearUserRefValues(): void;
    s(a: DescriptionRef): boolean;
    by(a: DescriptionRef): any;
    r(a: string): boolean;
    f(a: string): DescriptionRef;
    getMissingRefs(): string[];
    getRefChangeInfos(a: string): DescriptionRefTargetInfo[];
    private bz;
    private ai;
    private an;
    private ah;
    private de;
    private am;
    cm(a: any, b: any, c: ContainerState): void;
    private bb;
    private ag;
    private c2;
    private al;
    private ab;
    private m;
    private cd;
    private bu;
    private w;
    private bj;
    protected n(): boolean;
    private a9;
    private aa;
    private cj;
    private dk;
    private bx;
    private q;
    private p;
}
/**
 * @hidden
 */
export declare class ContainerState extends Base {
    static $t: Type;
    i: any;
    private e;
    private f;
    private d;
    private g;
    private c;
    k(a: any, b: number, c: any, d: DescriptionTreeNode, e: (arg1: any, arg2: string, arg3: any, arg4: boolean) => void, f: number): void;
    a(a: number): boolean;
    b(a: any): boolean;
    j(a: number): any;
    l(a: ComponentRenderer, b: any, c: number, d: (arg1: any, arg2: string, arg3: boolean) => void): void;
    h(a: any): number;
}
