import { Uint8ArrayList } from 'uint8arraylist';
import { MessageTypeNames } from './message-types.js';
import type { Message } from './message-types.js';
export declare const MAX_MSG_SIZE: number;
export declare const MAX_MSG_QUEUE_SIZE: number;
interface MessageHeader {
    id: number;
    type: keyof typeof MessageTypeNames;
    offset: number;
    length: number;
}
export declare class Decoder {
    private readonly _buffer;
    private _headerInfo;
    private readonly _maxMessageSize;
    private readonly _maxUnprocessedMessageQueueSize;
    constructor(maxMessageSize?: number, maxUnprocessedMessageQueueSize?: number);
    write(chunk: Uint8Array | Uint8ArrayList): Message[];
    /**
     * Attempts to decode the message header from the buffer
     */
    _decodeHeader(data: Uint8ArrayList): MessageHeader;
}
export interface ReadVarIntResult {
    value: number;
    offset: number;
}
export {};
//# sourceMappingURL=decode.d.ts.map