import _m0 from "protobufjs/minimal";
import { CameraSettings, ImgTransformation, Timestamp } from "./common";
export declare const protobufPackage = "dai.proto.encoded_frame";
export declare enum Profile {
    JPEG = 0,
    AVC = 1,
    HEVC = 2,
    UNRECOGNIZED = -1
}
export declare function profileFromJSON(object: any): Profile;
export declare function profileToJSON(object: Profile): string;
export declare enum FrameType {
    I = 0,
    P = 1,
    B = 2,
    UNKNOWN = 3,
    UNRECOGNIZED = -1
}
export declare function frameTypeFromJSON(object: any): FrameType;
export declare function frameTypeToJSON(object: FrameType): string;
export interface EncodedFrame {
    cam: CameraSettings | undefined;
    /** Which source created this frame (color, mono, ...) */
    instanceNum: number;
    /** width in pixels */
    width: number;
    /** height in pixels */
    height: number;
    /** Encoding quality */
    quality: number;
    /** Encoding bitrate */
    bitrate: number;
    /** Encoding profile (JPEG, AVC, HEVC) */
    profile: Profile;
    /** JPEG: true if lossless */
    lossless: boolean;
    /** H264: frame type (I, P, B) */
    type: FrameType;
    /** Frame offset */
    frameOffset: number;
    /** Frame size */
    frameSize: number;
    /** Sequence number */
    sequenceNum: number;
    /** Timestamp */
    ts: Timestamp | undefined;
    /** Timestamp from device */
    tsDevice: Timestamp | undefined;
    transformation: ImgTransformation | undefined;
    /** Encoded frame data */
    data: Uint8Array;
}
export declare const EncodedFrame: {
    encode(message: EncodedFrame, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): EncodedFrame;
    fromJSON(object: any): EncodedFrame;
    toJSON(message: EncodedFrame): unknown;
    create<I extends Exact<DeepPartial<EncodedFrame>, I>>(base?: I): EncodedFrame;
    fromPartial<I extends Exact<DeepPartial<EncodedFrame>, I>>(object: I): EncodedFrame;
};
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 declare const protobufName = "EncodedFrame";
export {};
//# sourceMappingURL=EncodedFrame.d.ts.map