import { Base, Type } from "./type";
import { UIElementPropertyId } from "./UIElementPropertyId";
import { NativeUIBuiltInEvents } from "./NativeUIBuiltInEvents";
import { NativeUIBuiltInProperties } from "./NativeUIBuiltInProperties";
import { NativeUIComponentHorizontalAlignment } from "./NativeUIComponentHorizontalAlignment";
import { NativeUIComponentVerticalAlignment } from "./NativeUIComponentVerticalAlignment";
import { Size } from "./Size";
import { Rect } from "./Rect";
import { NativeUIComponentBuiltInType } from "./NativeUIComponentBuiltInType";
import { BaseControlTheme } from "./BaseControlTheme";
import { Brush } from "./Brush";
import { Thickness } from "./Thickness";
import { CornerRadius } from "./CornerRadius";
import { Transform } from "./Transform";
import { NativeUICursor } from "./NativeUICursor";
import { Visibility } from "./Visibility";
import { NativeUIMouseEventArgs } from "./NativeUIMouseEventArgs";
import { NativeUIFocusEventArgs } from "./NativeUIFocusEventArgs";
import { INativeUIElementFactory } from "./INativeUIElementFactory";
import { NativeUIElementFactoryFlavor } from "./NativeUIElementFactoryFlavor";
/**
 * @hidden
 */
export interface INativeUIElementBridge {
    getMethodTarget(a: any): any;
    getTargetForProperty(a: UIElementPropertyId, b: any): any;
    addHandler(a: any, b: NativeUIComponent, c: NativeUIBuiltInEvents, d: any): void;
    removeHandler(a: any, b: NativeUIComponent, c: NativeUIBuiltInEvents, d: any): void;
    getValue(a: any, b: NativeUIBuiltInProperties): any;
    setValue(a: any, b: NativeUIBuiltInProperties, c: any): void;
    getTargetForBuildInProperty(a: any, b: NativeUIBuiltInProperties): any;
    getTargetForBuildInEvent(a: any, b: NativeUIBuiltInEvents): any;
    getHorizontalAlignment(a: any): NativeUIComponentHorizontalAlignment;
    setHorizontalAlignment(a: any, b: NativeUIComponentHorizontalAlignment): void;
    getVerticalAlignment(a: any): NativeUIComponentVerticalAlignment;
    setVerticalAlignment(a: any, b: NativeUIComponentVerticalAlignment): void;
    getHorizontalContentAlignment(a: any): NativeUIComponentHorizontalAlignment;
    setHorizontalContentAlignment(a: any, b: NativeUIComponentHorizontalAlignment): void;
    getVerticalContentAlignment(a: any): NativeUIComponentVerticalAlignment;
    setVerticalContentAlignment(a: any, b: NativeUIComponentVerticalAlignment): void;
    getDesiredSize(a: any, b: Size): Size;
    getBoundingRect(a: any): Rect;
    contains(a: any, b: any): boolean;
    focus(a: any): void;
    focusWithScrollPrevented(a: any): void;
    exportVisualData(a: any): any;
    beforeSetNativeValue(a: UIElementPropertyId, b: any): void;
    afterSetNativeValue(a: UIElementPropertyId, b: any): void;
}
/**
 * @hidden
 */
export declare let INativeUIElementBridge_$type: Type;
/**
 * @hidden
 */
export interface INativeUIContainerBridge extends INativeUIElementBridge {
    getChildAt(a: any, b: number): NativeUIComponent;
    removeChildAt(a: any, b: number): void;
    addChild(a: any, b: NativeUIComponent): void;
    insertChild(a: any, b: number, c: NativeUIComponent): void;
    removeChild(a: any, b: NativeUIComponent): void;
    getChildrenCount(a: any): number;
}
/**
 * @hidden
 */
export declare let INativeUIContainerBridge_$type: Type;
/**
 * @hidden
 */
export declare class NativeUIComponent extends Base {
    static $t: Type;
    j: NativeUIContainer;
    a1(): void;
    bf(a: Size): Size;
    be(): Rect;
    t(a: any): boolean;
    az(): void;
    a0(): void;
    ao: any;
    protected get_e(): NativeUIComponentBuiltInType;
    get e(): NativeUIComponentBuiltInType;
    protected get am(): any;
    private static w;
    static as(a: INativeUIElementFactory): void;
    private static a;
    static v(a: NativeUIComponentBuiltInType, b: NativeUIElementFactoryFlavor): boolean;
    static at(a: any, b: NativeUIComponentBuiltInType, c: NativeUIElementFactoryFlavor, d: (arg1: any) => void): void;
    static au(a: any, b: NativeUIComponentBuiltInType, c: (arg1: any) => void): void;
    static av(a: any, b: NativeUIComponentBuiltInType[], c: NativeUIElementFactoryFlavor[], d: (arg1: any[]) => void): void;
    static aw(a: any, b: NativeUIComponentBuiltInType[], c: (arg1: any[]) => void): void;
    static ax(a: any, b: NativeUIComponentBuiltInType, c: NativeUIElementFactoryFlavor, d: (arg1: any) => void): void;
    static ay(a: any, b: NativeUIComponentBuiltInType, c: (arg1: any) => void): void;
    d: INativeUIElementBridge;
    an: any;
    protected al(a: UIElementPropertyId): any;
    protected ai(a: UIElementPropertyId): any;
    protected a6(a: UIElementPropertyId, b: any): void;
    protected ag(a: NativeUIBuiltInProperties): any;
    protected a4(a: NativeUIBuiltInProperties, b: any): void;
    protected aq(a: NativeUIBuiltInEvents, b: any): void;
    protected ar(a: any, b: NativeUIComponent, c: NativeUIBuiltInEvents, d: any): void;
    protected a2(a: NativeUIBuiltInEvents, b: any): void;
    protected a3(a: any, b: NativeUIComponent, c: NativeUIBuiltInEvents, d: any): void;
    protected ah(a: any, b: NativeUIBuiltInProperties): any;
    protected a5(a: any, b: NativeUIBuiltInProperties, c: any): void;
    protected ak(a: NativeUIBuiltInProperties): any;
    protected aj(a: NativeUIBuiltInEvents): any;
    get ap(): string;
    set ap(a: string);
    get ae(): number;
    set ae(a: number);
    get y(): number;
    set y(a: number);
    get aa(): number;
    set aa(a: number);
    get c(): BaseControlTheme;
    set c(a: BaseControlTheme);
    get a8(): Brush;
    set a8(a: Brush);
    get a9(): Brush;
    set a9(a: Brush);
    get bg(): Thickness;
    set bg(a: Thickness);
    get a7(): CornerRadius;
    set a7(a: CornerRadius);
    get bi(): Thickness;
    set bi(a: Thickness);
    get ba(): Brush;
    set ba(a: Brush);
    get x(): number;
    set x(a: number);
    get z(): number;
    set z(a: number);
    get ad(): number;
    set ad(a: number);
    get bh(): Thickness;
    set bh(a: Thickness);
    get bd(): Transform;
    set bd(a: Transform);
    get bc(): Brush;
    set bc(a: Brush);
    get bb(): Brush;
    set bb(a: Brush);
    get ac(): number;
    set ac(a: number);
    get b(): number[];
    set b(a: number[]);
    get ab(): number;
    set ab(a: number);
    get f(): NativeUIComponentHorizontalAlignment;
    set f(a: NativeUIComponentHorizontalAlignment);
    get h(): NativeUIComponentVerticalAlignment;
    set h(a: NativeUIComponentVerticalAlignment);
    get g(): NativeUIComponentHorizontalAlignment;
    set g(a: NativeUIComponentHorizontalAlignment);
    get i(): NativeUIComponentVerticalAlignment;
    set i(a: NativeUIComponentVerticalAlignment);
    get k(): NativeUICursor;
    set k(a: NativeUICursor);
    protected get_u(): boolean;
    protected set_u(a: boolean): void;
    get u(): boolean;
    set u(a: boolean);
    get bj(): Visibility;
    set bj(a: Visibility);
    private p;
    get q(): (sender: any, args: NativeUIMouseEventArgs) => void;
    set q(a: (sender: any, args: NativeUIMouseEventArgs) => void);
    private r;
    get s(): (sender: any, args: NativeUIMouseEventArgs) => void;
    set s(a: (sender: any, args: NativeUIMouseEventArgs) => void);
    private l;
    get n(): (sender: any, args: NativeUIFocusEventArgs) => void;
    set n(a: (sender: any, args: NativeUIFocusEventArgs) => void);
    private m;
    get o(): (sender: any, args: NativeUIFocusEventArgs) => void;
    set o(a: (sender: any, args: NativeUIFocusEventArgs) => void);
    af(): any;
}
/**
 * @hidden
 */
export declare class NativeUIContainer extends NativeUIComponent {
    static $t: Type;
    get bm(): number;
    get bk(): INativeUIContainerBridge;
    bl(a: number): NativeUIComponent;
    bq(a: number): void;
    bn(a: NativeUIComponent): void;
    bo(a: number, b: NativeUIComponent): void;
    bp(a: NativeUIComponent): void;
}
