/// <reference types="node" />
export declare class BufWrite {
    buf: number[];
    push(item: number): void;
    concat(buf: number[]): void;
    get(): Uint8Array;
}
export declare const writeTag: (buf: BufWrite, tag: number, type: number) => void;
export declare const writeVarint: (buf: BufWrite, val: number, s?: boolean) => void;
declare function writeInt32(buf: BufWrite, val: number): void;
export declare const writePacked: <T>(fn: (buf: BufWrite, val: any) => void, buf: BufWrite, tag: number, arr: T[]) => void;
export declare const writeMapRaw: {
    string: (buf: BufWrite, str: string) => void;
    float: (buf: BufWrite, val: number) => void;
    double: (buf: BufWrite, val: number) => void;
    bool: (buf: BufWrite, val: boolean) => void;
    enum: (buf: BufWrite, val: number, s?: boolean) => void;
    uint32: (buf: BufWrite, val: number, s?: boolean) => void;
    uint64: (buf: BufWrite, val: number, s?: boolean) => void;
    int32: (buf: BufWrite, val: number, s?: boolean) => void;
    int64: (buf: BufWrite, val: number, s?: boolean) => void;
    sint32: (buf: BufWrite, val: number) => void;
    sint64: (buf: BufWrite, val: number) => void;
    fixed32: typeof writeInt32;
    fixed64: (buf: BufWrite, val: number) => void;
    sfixed32: typeof writeInt32;
    sfixed64: (buf: BufWrite, val: number) => void;
    bytes: (buf: BufWrite, buffer: Buffer) => void;
};
export type WriteMapRawKeys = keyof typeof writeMapRaw;
export declare const writeMap: {
    string: (buf: BufWrite, tag: number, str: string) => void;
    float: (buf: BufWrite, tag: number, val: number) => void;
    double: (buf: BufWrite, tag: number, val: number) => void;
    bool: (buf: BufWrite, tag: number, val: boolean) => void;
    enum: (buf: BufWrite, tag: number, val: number) => void;
    uint32: (buf: BufWrite, tag: number, val: number) => void;
    uint64: (buf: BufWrite, tag: number, val: number) => void;
    int32: (buf: BufWrite, tag: number, val: number) => void;
    int64: (buf: BufWrite, tag: number, val: number) => void;
    sint32: (buf: BufWrite, tag: number, val: number) => void;
    sint64: (buf: BufWrite, tag: number, val: number) => void;
    fixed32: (buf: BufWrite, tag: number, val: number) => void;
    fixed64: (buf: BufWrite, tag: number, val: number) => void;
    sfixed32: (buf: BufWrite, tag: number, val: number) => void;
    sfixed64: (buf: BufWrite, tag: number, val: number) => void;
    bytes: (buf: BufWrite, tag: number, buffer: Buffer) => void;
};
export type WriteMapKeys = keyof typeof writeMap;
export {};
