import { AMQPView } from "./amqp-view.js";
import type { Field } from "./amqp-properties.js";
export declare enum Type {
    METHOD = 1,
    HEADER = 2,
    BODY = 3,
    HEARTBEAT = 8
}
export declare enum End {
    CODE = 206
}
export declare enum ClassId {
    CONNECTION = 10,
    CHANNEL = 20,
    EXCHANGE = 40,
    QUEUE = 50,
    BASIC = 60,
    TX = 90,
    CONFIRM = 85
}
export declare enum ConnectionMethod {
    START = 10,
    START_OK = 11,
    SECURE = 20,
    SECURE_OK = 21,
    TUNE = 30,
    TUNE_OK = 31,
    OPEN = 40,
    OPEN_OK = 41,
    CLOSE = 50,
    CLOSE_OK = 51,
    BLOCKED = 60,
    UNBLOCKED = 61,
    UPDATE_SECRET = 70,
    UPDATE_SECRET_OK = 71
}
export declare enum ChannelMethod {
    OPEN = 10,
    OPEN_OK = 11,
    FLOW = 20,
    FLOW_OK = 21,
    CLOSE = 40,
    CLOSE_OK = 41
}
export declare enum ExchangeMethod {
    DECLARE = 10,
    DECLARE_OK = 11,
    DELETE = 20,
    DELETE_OK = 21,
    BIND = 30,
    BIND_OK = 31,
    UNBIND = 40,
    UNBIND_OK = 51
}
export declare enum QueueMethod {
    DECLARE = 10,
    DECLARE_OK = 11,
    BIND = 20,
    BIND_OK = 21,
    PURGE = 30,
    PURGE_OK = 31,
    DELETE = 40,
    DELETE_OK = 41,
    UNBIND = 50,
    UNBIND_OK = 51
}
export declare enum BasicMethod {
    QOS = 10,
    QOS_OK = 11,
    CONSUME = 20,
    CONSUME_OK = 21,
    CANCEL = 30,
    CANCEL_OK = 31,
    PUBLISH = 40,
    RETURN = 50,
    DELIVER = 60,
    GET = 70,
    GET_OK = 71,
    GET_EMPTY = 72,
    ACK = 80,
    REJECT = 90,
    RECOVER_ASYNC = 100,
    RECOVER = 110,
    RECOVER_OK = 111,
    NACK = 120
}
export declare enum TxMethod {
    SELECT = 10,
    SELECT_OK = 11,
    COMMIT = 20,
    COMMIT_OK = 21,
    ROLLBACK = 30,
    ROLLBACK_OK = 31
}
export declare enum ConfirmMethod {
    SELECT = 10,
    SELECT_OK = 11
}
interface FrameOptions {
    bufferSize: number;
    type: Type;
    channel: number;
    frameSize?: number;
    classId: ClassId;
    method: number;
}
export declare class Writer {
    view: AMQPView;
    offset: number;
    constructor(options: FrameOptions);
    finalize(): void;
    getBuffer(): ArrayBufferLike;
    toUint8Array(): Uint8Array<ArrayBufferLike>;
    writeUint8(value: number): void;
    writeUint16(value: number): void;
    writeUint32(value: number): void;
    writeUint64(value: number): void;
    writeShortString(value: string): void;
    writeLongString(value: string): void;
    writeTable(table: Record<string, Field>): void;
}
export {};
//# sourceMappingURL=amqp-frame.d.ts.map