import type { GLTF as ThreeGltf } from 'three/examples/jsm/loaders/GLTFLoader.js';
import { Geometry as ViamGeometry } from '@viamrobotics/sdk';
import { type Entity } from 'koota';
import { BufferGeometry as ThreeBufferGeometry } from 'three';
export declare const Name: import("koota").Trait<() => string>;
export declare const Parent: import("koota").Trait<() => string>;
export declare const Pose: import("koota").Trait<{
    x: number;
    y: number;
    z: number;
    oX: number;
    oY: number;
    oZ: number;
    theta: number;
}>;
export declare const EditedPose: import("koota").Trait<{
    x: number;
    y: number;
    z: number;
    oX: number;
    oY: number;
    oZ: number;
    theta: number;
}>;
export declare const Center: import("koota").Trait<{
    x: number;
    y: number;
    z: number;
    oX: number;
    oY: number;
    oZ: number;
    theta: number;
}>;
export declare const InstancedPose: import("koota").Trait<{
    x: number;
    y: number;
    z: number;
    oX: number;
    oY: number;
    oZ: number;
    theta: number;
    index: number;
}>;
export declare const WorldPose: import("koota").Trait<{
    x: number;
    y: number;
    z: number;
    oX: number;
    oY: number;
    oZ: number;
    theta: number;
}>;
export declare const Hovered: import("koota").Trait<() => boolean>;
/**
 * Represents that an entity is composed of many instances, so that the treeview and
 * details panel may display all instances
 */
export declare const Instanced: import("koota").Trait<() => boolean>;
export declare const Instance: import("koota").Trait<{
    meshID: number;
    instanceID: number;
}>;
export declare const RenderOrder: import("koota").Trait<() => number>;
export declare const Opacity: import("koota").Trait<() => number>;
/**
 * The color of an object
 * @default { r: 1, g: 0, b: 0 }
 */
export declare const Color: import("koota").Trait<{
    r: number;
    g: number;
    b: number;
}>;
/**
 * Material properties
 */
export declare const Material: import("koota").Trait<{
    depthTest: boolean;
}>;
export declare const DepthTest: import("koota").Trait<() => boolean>;
export declare const Arrow: import("koota").Trait<() => boolean>;
export declare const Positions: import("koota").Trait<() => Float32Array<ArrayBuffer>>;
export declare const Colors: import("koota").Trait<() => Uint8Array<ArrayBuffer>>;
export declare const Instances: import("koota").Trait<{
    count: number;
}>;
export declare const Arrows: import("koota").Trait<{
    headAtPose: boolean;
}>;
/**
 * Render entity as points
 */
export declare const Points: import("koota").Trait<() => boolean>;
/**
 * A box, in mm
 */
export declare const Box: import("koota").Trait<{
    x: number;
    y: number;
    z: number;
}>;
/**
 * A capsule, in mm
 */
export declare const Capsule: import("koota").Trait<{
    l: number;
    r: number;
}>;
/**
 * A sphere, in mm
 */
export declare const Sphere: import("koota").Trait<{
    r: number;
}>;
export declare const PointColor: import("koota").Trait<{
    r: number;
    g: number;
    b: number;
}>;
/** format [x, y, z, ...] */
export declare const LinePositions: import("koota").Trait<() => Float32Array<ArrayBuffer>>;
export declare const BufferGeometry: import("koota").Trait<() => ThreeBufferGeometry<import("three").NormalBufferAttributes, import("three").BufferGeometryEventMap>>;
/** format [r, g, b, ...] */
export declare const VertexColors: import("koota").Trait<() => Float32Array<ArrayBuffer>>;
export declare const GLTF: import("koota").Trait<() => {
    source: {
        url: string;
    } | {
        gltf: ThreeGltf;
    } | {
        glb: Uint8Array<ArrayBuffer>;
    };
    animationName: string;
}>;
export declare const Scale: import("koota").Trait<{
    x: number;
    y: number;
    z: number;
}>;
export declare const FramesAPI: import("koota").Trait<() => boolean>;
export declare const GeometriesAPI: import("koota").Trait<() => boolean>;
export declare const DrawAPI: import("koota").Trait<() => boolean>;
export declare const WorldStateStoreAPI: import("koota").Trait<() => boolean>;
export declare const SnapshotAPI: import("koota").Trait<() => boolean>;
/**
 * Marker trait for entities created from user-dropped files (PLY, PCD, etc.)
 */
export declare const DroppedFile: import("koota").Trait<() => boolean>;
export declare const ShowAxesHelper: import("koota").Trait<() => boolean>;
/**
 * Point size, in mm
 */
export declare const PointSize: import("koota").Trait<() => number>;
/**
 * Line width, in mm
 */
export declare const LineWidth: import("koota").Trait<() => number>;
export declare const ReferenceFrame: import("koota").Trait<() => boolean>;
/**
 * This entity can be safetly removed from the scene by the user
 */
export declare const Removable: import("koota").Trait<() => boolean>;
export declare const Geometry: (geometry: ViamGeometry) => import("koota").Trait<() => boolean> | [import("koota").Trait<{
    x: number;
    y: number;
    z: number;
}>, Partial<{
    x: number;
    y: number;
    z: number;
}>] | [import("koota").Trait<{
    l: number;
    r: number;
}>, Partial<{
    l: number;
    r: number;
}>] | [import("koota").Trait<{
    r: number;
}>, Partial<{
    r: number;
}>] | [import("koota").Trait<() => ThreeBufferGeometry<import("three").NormalBufferAttributes, import("three").BufferGeometryEventMap>>, ThreeBufferGeometry<import("three").NormalBufferAttributes, import("three").BufferGeometryEventMap>];
export declare const updateGeometryTrait: (entity: Entity, geometry?: ViamGeometry) => void;
