import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { ImgDetection } from "./ImgDetections";
import { ImgTransformation, SpatialKeypointsList, Timestamp } from "./common";
export declare const protobufPackage = "dai.proto.spatial_img_detections";
export declare enum SpatialLocationCalculatorAlgorithm {
    AVERAGE = 0,
    MEAN = 0,
    MIN = 1,
    MAX = 2,
    MODE = 3,
    MEDIAN = 4,
    UNRECOGNIZED = -1
}
export declare function spatialLocationCalculatorAlgorithmFromJSON(object: any): SpatialLocationCalculatorAlgorithm;
export declare function spatialLocationCalculatorAlgorithmToJSON(object: SpatialLocationCalculatorAlgorithm): string;
export interface SpatialImgDetections {
    sequenceNum: number;
    ts: Timestamp | undefined;
    tsDevice: Timestamp | undefined;
    detections: SpatialImgDetection[];
    transformation: ImgTransformation | undefined;
    segmentationMaskWidth: number;
    segmentationMaskHeight: number;
    maskData: Uint8Array;
}
export interface SpatialImgDetection {
    detection: ImgDetection | undefined;
    spatialCoordinates: Point3f | undefined;
    boundingBoxMapping: SpatialLocationCalculatorConfigData | undefined;
    keypoints: SpatialKeypointsList | undefined;
}
export interface SpatialLocationCalculatorConfigData {
    roi: Rect | undefined;
    depthThresholds: SpatialLocationCalculatorConfigThresholds | undefined;
    calculationAlgorithm: SpatialLocationCalculatorAlgorithm;
    /** default value: AUTO */
    stepSize: number;
}
export interface Rect {
    /** default value: 0.0f */
    x: number;
    /** default value: 0.0f */
    y: number;
    /** default value: 0.0f */
    width: number;
    /** default value: 0.0f */
    height: number;
}
export interface SpatialLocationCalculatorConfigThresholds {
    /** default value: 0 */
    lowerThreshold: number;
    /** default value: 65535 */
    upperThreshold: number;
}
export interface Point3f {
    x: number;
    y: number;
    z: number;
}
export declare const SpatialImgDetections: MessageFns<SpatialImgDetections>;
export declare const SpatialImgDetection: MessageFns<SpatialImgDetection>;
export declare const SpatialLocationCalculatorConfigData: MessageFns<SpatialLocationCalculatorConfigData>;
export declare const Rect: MessageFns<Rect>;
export declare const SpatialLocationCalculatorConfigThresholds: MessageFns<SpatialLocationCalculatorConfigThresholds>;
export declare const Point3f: MessageFns<Point3f>;
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export interface MessageFns<T> {
    encode(message: T, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): T;
    fromJSON(object: any): T;
    toJSON(message: T): unknown;
    create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
    fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
export declare const protobufName = "SpatialImgDetections";
export {};
//# sourceMappingURL=SpatialImgDetections.d.ts.map