import { MessageDefinition } from "@foxglove/message-definition";
export type MessageReaderOptions = {
    /**
     * Select the type for deserialized `time` and `duration` values. "sec" and "nanosec" are used by
     * default in ROS 2, whereas "sec" and "nsec" originates from ROS 1 and matches
     * `@foxglove/rostime`.
     *
     * @default "sec,nanosec"
     */
    timeType?: "sec,nanosec" | "sec,nsec";
};
export declare class MessageReader<T = unknown> {
    #private;
    /**
     * True when the most recent decode finished before reaching the end of the buffer, excluding CDR
     * final padding. CDR ignores trailing bytes by design, so this can signal a schema/payload
     * version mismatch.
     */
    lastReadHadTrailingBytes(): boolean;
    /**
     * Number of bytes consumed by the most recent decode.
     */
    lastReadByteLength(): number;
    constructor(definitions: MessageDefinition[], options?: MessageReaderOptions);
    readMessage<R = T>(buffer: ArrayBufferView): R;
}
//# sourceMappingURL=MessageReader.d.ts.map