import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { CameraSettings, ImgTransformation, Timestamp } from "./common";
export declare const protobufPackage = "dai.proto.img_frame";
export declare enum Type {
    /** YUV422i - interleaved 8 bit */
    YUV422i = 0,
    /** YUV444p - planar 4:4:4 format */
    YUV444p = 1,
    /** YUV420p - planar 4:2:0 format */
    YUV420p = 2,
    /** YUV422p - planar 8 bit */
    YUV422p = 3,
    /** YUV400p - 8-bit greyscale */
    YUV400p = 4,
    /** RGBA8888 - RGBA interleaved stored in 32 bit word */
    RGBA8888 = 5,
    /** RGB161616 - Planar 16 bit RGB data */
    RGB161616 = 6,
    /** RGB888p - Planar 8 bit RGB data */
    RGB888p = 7,
    /** BGR888p - Planar 8 bit BGR data */
    BGR888p = 8,
    /** RGB888i - Interleaved 8 bit RGB data */
    RGB888i = 9,
    /** BGR888i - Interleaved 8 bit BGR data */
    BGR888i = 10,
    /** LUT2 - 1 bit  per pixel, Lookup table (used for graphics layers) */
    LUT2 = 11,
    /** LUT4 - 2 bits per pixel, Lookup table (used for graphics layers) */
    LUT4 = 12,
    /** LUT16 - 4 bits per pixel, Lookup table (used for graphics layers) */
    LUT16 = 13,
    /** RAW16 - save any raw type (8, 10, 12bit) on 16 bits */
    RAW16 = 14,
    /** RAW14 - 14bit value in 16bit storage */
    RAW14 = 15,
    /** RAW12 - 12bit value in 16bit storage */
    RAW12 = 16,
    /** RAW10 - 10bit value in 16bit storage */
    RAW10 = 17,
    RAW8 = 18,
    /** PACK10 - SIPP 10bit packed format */
    PACK10 = 19,
    /** PACK12 - SIPP 12bit packed format */
    PACK12 = 20,
    YUV444i = 21,
    NV12 = 22,
    NV21 = 23,
    /** BITSTREAM - used for video encoder bitstream */
    BITSTREAM = 24,
    HDR = 25,
    /** RGBF16F16F16p - Planar FP16 RGB data */
    RGBF16F16F16p = 26,
    /** BGRF16F16F16p - Planar FP16 BGR data */
    BGRF16F16F16p = 27,
    /** RGBF16F16F16i - Interleaved FP16 RGB data */
    RGBF16F16F16i = 28,
    /** BGRF16F16F16i - Interleaved FP16 BGR data */
    BGRF16F16F16i = 29,
    /** GRAY8 - 8 bit grayscale (1 plane) */
    GRAY8 = 30,
    /** GRAYF16 - FP16 grayscale (normalized) */
    GRAYF16 = 31,
    /** RAW32 - 32 bits raw */
    RAW32 = 32,
    NONE = 33,
    UNRECOGNIZED = -1
}
export declare function typeFromJSON(object: any): Type;
export declare function typeToJSON(object: Type): string;
export interface ImgFrame {
    ts: Timestamp | undefined;
    tsDevice: Timestamp | undefined;
    sequenceNum: number;
    fb: Specs | undefined;
    sourceFb: Specs | undefined;
    cam: CameraSettings | undefined;
    HFovDegrees: number;
    instanceNum: number;
    transformation: ImgTransformation | undefined;
    category: number;
    data: Uint8Array;
}
export interface Specs {
    type: Type;
    width: number;
    height: number;
    stride: number;
    bytesPP: number;
    p1Offset: number;
    p2Offset: number;
    p3Offset: number;
}
export declare const ImgFrame: MessageFns<ImgFrame>;
export declare const Specs: MessageFns<Specs>;
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 = "ImgFrame";
export {};
//# sourceMappingURL=ImgFrame.d.ts.map