export interface Vector3Like {
    x: number;
    y: number;
    z: number;
}
export interface ControlPickMetadata {
    readonly id?: string;
    readonly label?: string;
    readonly kind?: string;
    readonly group?: string;
    readonly routeId?: string;
    readonly source?: string;
    readonly targetId?: string;
    readonly selectable?: boolean;
    readonly highlightable?: boolean;
    readonly pickRadius?: number;
    readonly priority?: number;
    readonly payload?: unknown;
}
export declare class ControlVector3 implements Vector3Like {
    x: number;
    y: number;
    z: number;
    constructor(x?: number, y?: number, z?: number);
    set(x: number, y: number, z: number): this;
    copy(value: Vector3Like): this;
    clone(): ControlVector3;
    add(value: Vector3Like): this;
    sub(value: Vector3Like): this;
    length(): number;
    normalize(): this;
}
export interface ControlObject3DLike {
    readonly name?: string;
    readonly type?: string;
    readonly children?: readonly ControlObject3DLike[];
    readonly position: Vector3Like;
    readonly rotation?: Vector3Like;
    readonly scale?: Vector3Like;
    readonly visible?: boolean;
    readonly pickRadius?: number;
    readonly pickPriority?: number;
    readonly picking?: ControlPickMetadata;
    readonly userData?: Record<string, unknown>;
    traverse?(callback: (object: ControlObject3DLike) => void): void;
}
export declare function addVector3(target: Vector3Like | undefined, delta: Vector3Like): void;
export declare function traverseControlObject(root: ControlObject3DLike, callback: (object: ControlObject3DLike) => void): void;
//# sourceMappingURL=NativeControlTypes.d.ts.map