import { MessageEvent } from "@foxglove/studio-base/players/types.js";
import { Specs, Type } from "../protobuf.generated/ImgFrame.js";
import { Timestamp } from "../protobuf.generated/common.js";
export declare function fromMillis(value: number): Timestamp;
export declare function useOnMessage<T>(topic: string | null, callback: (event: MessageEvent<T>) => void): void;
export type FoxglovePixelFormat = 'yuv422' | 'uyvy' | 'nv12' | 'yuv422_yuy2' | 'yuyv' | 'rgb8' | 'rgb8p' | 'rgba8' | 'bgra8' | 'bgr8' | 'bgr8p' | 'bgr8i' | '8UC3' | '32FC1' | 'I420' | 'bayer_rggb8' | 'bayer_bggr8' | 'bayer_gbrg8' | 'bayer_grbg8' | 'mono8' | '8UC1' | 'mono16' | '16UC1';
export type ParsedEncoding = [encoding: FoxglovePixelFormat, widthStep: number];
export declare function parsePixelFormat(format: VideoPixelFormat | null): ParsedEncoding;
export type ParseMessageResult = {
    encoding: FoxglovePixelFormat;
    step: number;
    receiveTime: Timestamp;
    width: number;
    height: number;
    stride: number | null;
    planeStride: number | null;
    type: Type;
};
export declare function parseMessage(message: {
    fb?: Specs;
    sourceFb?: Specs;
    ts?: Timestamp;
    tsDevice?: Timestamp;
}): ParseMessageResult;
//# sourceMappingURL=utils.d.ts.map