import { Base, Type } from "./type";
import { DescriptionRef } from "./DescriptionRef";
import { TypeDescriptionPlatform } from "./TypeDescriptionPlatform";
import { Dictionary$2 } from "./Dictionary$2";
import { TypeDescriptionWellKnownType } from "./TypeDescriptionWellKnownType";
import { Description } from "./Description";
/**
 * @hidden
 */
export interface IComponentRendererAdapter {
    createObject(a: string, b: any, c: TypeDescriptionContext, d: string): any;
    createColorCollection(a: any[]): any;
    createBrushCollection(a: any[]): any;
    createDoubleCollection(a: any[]): any;
    coerceToEnum(a: string, b: TypeDescriptionContext, c: string): any;
    onUIThread(a: any, b: () => void): void;
    setOrUpdateCollectionOnTarget(a: any, b: string, c: TypeDescriptionMetadata, d: TypeDescriptionContext, e: any, f: any): void;
    onPendingRef(a: any, b: string, c: TypeDescriptionMetadata, d: DescriptionRef): void;
    setPropertyValue(a: any, b: string, c: TypeDescriptionMetadata, d: any, e: any, f: DescriptionRef): void;
    getPropertyValue(a: any, b: string): any;
    forPropertyValueItem(a: any, b: string, c: (arg1: any) => void): void;
    clearContainer(a: any, b: TypeDescriptionContext, c: (arg1: boolean) => void): void;
    getRootObject(a: any): any;
    clearCollection(a: any, b: string, c: TypeDescriptionMetadata): void;
    addItemToCollection(a: string, b: TypeDescriptionMetadata, c: any, d: number, e: any): void;
    resetPropertyOnTarget(a: any, b: string, c: TypeDescriptionMetadata, d: any): void;
    replaceItemInCollection(a: string, b: TypeDescriptionMetadata, c: any, d: number, e: any): void;
    removeItemFromCollection(a: string, b: TypeDescriptionMetadata, c: any, d: number): void;
    replaceRootItem(a: any, b: string, c: TypeDescriptionContext, d: (arg1: boolean) => void): void;
    removeRootItem(a: any, b: TypeDescriptionContext, c: (arg1: boolean) => void): void;
    flushChanges(a: any): void;
    executeMethod(a: any, b: string, c: any[], d: TypeDescriptionMetadata[], e: (arg1: any) => void): void;
    createHandler(a: string, b: string, c: string, d: TypeDescriptionContext, e: (arg1: any, arg2: any) => void): any;
    disposeHandler(a: (arg1: any, arg2: any) => void): void;
    serializeBrush(a: any): any;
    serializeColor(a: any): any;
    serializeBrushCollection(a: any): any;
    serializePoint(a: any): any;
    serializeSize(a: any): any;
    serializeRect(a: any): any;
    serializePixelPoint(a: any): any;
    serializePixelSize(a: any): any;
    serializePixelRect(a: any): any;
    serializeColorCollection(a: any): any;
    serializeTimespan(a: any): any;
    serializeDoubleCollection(a: any): any;
    publicCollectionAsObjectArray(a: any): any[];
}
/**
 * @hidden
 */
export declare let IComponentRendererAdapter_$type: Type;
/**
 * @hidden
 */
export declare class TypeDescriptionContext extends Base {
    static $t: Type;
    constructor(a: IComponentRendererAdapter, b: TypeDescriptionPlatform);
    private r;
    private q;
    private g;
    private i;
    private s;
    ad(a: Dictionary$2<string, string>): void;
    k(a: Dictionary$2<string, string>): boolean;
    ae(a: string, b: Dictionary$2<string, string>): void;
    af(a: string, b: () => any): void;
    static ac(key_: string): string;
    static ab(key_: string): string;
    a(): string[];
    getAllProperties(a: string): string[];
    getMetadata(a: string, b: string): TypeDescriptionMetadata;
    z(a: string, b: string): string;
    w(a: string): any;
    ag(a: Description, b: string, c: TypeDescriptionMetadata, d: any): void;
    ah(a: Description, b: string, c: TypeDescriptionMetadata, d: any): void;
    v(a: any[]): any;
    u(a: any[]): any;
    x(a: any[]): any;
    y(a: string, b: any, c: string): any;
    t(a: string, b: string, c: TypeDescriptionMetadata, d: boolean): any;
    c(a: string, b: string): string[];
    j(a: string, b: string): boolean;
    d(a: string, b: string): string[];
    hasNameBinding(a: string, b: string): boolean;
    getMustSetInCodePlatforms(a: string, b: string): string[];
    getStringUnionPlatforms(a: string, b: string): string[];
    hasMustSetInCodePlatforms(a: string, b: string): boolean;
    hasStringUnionPlatforms(a: string, b: string): boolean;
    hasQueryListName(a: string, b: string): boolean;
    getQueryListName(a: string, b: string): string;
    p(a: string): boolean;
}
/**
 * @hidden
 */
export declare class TypeDescriptionMetadata extends Base {
    static $t: Type;
    private _owningContext;
    get owningContext(): TypeDescriptionContext;
    set owningContext(a: TypeDescriptionContext);
    private _owningType;
    get owningType(): string;
    set owningType(a: string);
    private _propertyName;
    get propertyName(): string;
    set propertyName(a: string);
    private _knownType;
    get knownType(): TypeDescriptionWellKnownType;
    set knownType(a: TypeDescriptionWellKnownType);
    private _specificType;
    get specificType(): string;
    set specificType(a: string);
    private _specificExternalType;
    get specificExternalType(): string;
    set specificExternalType(a: string);
    private _collectionElementType;
    get collectionElementType(): string;
    set collectionElementType(a: string);
    private _isCustomEvent;
    get isCustomEvent(): boolean;
    set isCustomEvent(a: boolean);
    private _skipWCEventPrefix;
    get skipWCEventPrefix(): boolean;
    set skipWCEventPrefix(a: boolean);
    private _mustBeFirst;
    get mustBeFirst(): boolean;
    set mustBeFirst(a: boolean);
    private g;
    private h;
    r(a: TypeDescriptionPlatform, b: string): void;
    static camelize(a: string): string;
    static toPascal(a: string): string;
    k(a: TypeDescriptionPlatform): string;
    static shouldCamelize(a: TypeDescriptionPlatform): boolean;
    l(a: TypeDescriptionPlatform): string;
}
