import type { TransformWithUUID } from '@viamrobotics/sdk';
import type { Entity, Trait, World } from 'koota';
import type { Transform as TransformProto } from './buf/common/v1/common_pb';
import type { Drawing } from './buf/draw/v1/drawing_pb';
import type { Relationship } from './metadata';
import { type Metadata } from './metadata';
export declare const DEFAULT_LINE_WIDTH = 5;
export type Transform = TransformWithUUID | TransformProto;
export declare const uuidBytesToString: (bytes: Uint8Array | undefined) => string | undefined;
export declare const uuidStringToBytes: (uuid: string) => Uint8Array<ArrayBuffer>;
interface DrawOptions {
    removable?: boolean;
}
export declare const drawTransform: (world: World, { referenceFrame, poseInObserverFrame, physicalObject, metadata, uuid }: Transform, api: Trait, { removable }?: DrawOptions) => {
    entity: Entity;
    relationships: import("@bufbuild/protobuf").PlainMessage<import("./buf/draw/v1/metadata_pb").Relationship>[] | undefined;
};
export interface DrawingResult {
    entity: Entity;
    relationships: Relationship[] | undefined;
}
export declare const drawDrawing: (world: World, drawing: Drawing, api: Trait, { removable }?: DrawOptions) => DrawingResult;
export declare const updateTransform: (entity: Entity, { poseInObserverFrame, physicalObject, metadata }: Transform, { removable }?: DrawOptions) => {
    entity: Entity;
    relationships: import("@bufbuild/protobuf").PlainMessage<import("./buf/draw/v1/metadata_pb").Relationship>[] | undefined;
};
interface MetadataOptions {
    pointCloud?: boolean;
}
export declare const updateMetadata: (entity: Entity, metadata: Metadata, { pointCloud }?: MetadataOptions) => void;
export declare const updateDrawing: (world: World, entity: Entity, drawing: Drawing, { removable }?: DrawOptions) => DrawingResult;
export declare const updateModel: (world: World, entity: Entity, drawing: Drawing, api: Trait, { removable }?: DrawOptions) => DrawingResult;
export {};
