import { Writer } from '@jsonjoy.com/util/lib/buffers/Writer';
export declare class CrdtWriter extends Writer {
    /**
     * In the below encoding diagrams bits are annotated as follows:
     *
     * - "x" - vector table index, reference to the logical clock.
     * - "y" - time difference.
     * - "?" - whether the next byte is used for encoding.
     *
     * If x is less than 8 and y is less than 16, the relative ID is encoded as a
     * single byte:
     *
     * ```
     * +--------+
     * |0xxxyyyy|
     * +--------+
     * ```
     *
     * Otherwise the top bit of the first byte is set to 1; and x and y are encoded
     * separately using b1vuint28 and vuint39, respectively.
     *
     * ```
     *       x          y
     * +===========+=========+
     * | b1vuint28 | vuint39 |
     * +===========+=========+
     * ```
     *
     * The boolean flag of x b1vuint28 value is always set to 1.
     */
    id(x: number, y: number): void;
    /**
     * #### `vu57`
     *
     * `vu57` stands for *variable length unsigned 57 bit integer*. It consumes
     * up to 8 bytes. The maximum size of the decoded value is 57 bits.
     *
     * The high bit `?` of each octet indicates if the next byte should be
     * consumed, up to 8 bytes. When `?` is set to `0`, it means that the current
     * byte is the last byte of the encoded value.
     *
     * ```
     *  byte 1   byte 2   byte 3   byte 4   byte 5   byte 6   byte 7   byte 8
     * +--------+........+........+........+........+........+........+········+
     * |?zzzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|zzzzzzzz|
     * +--------+........+........+........+........+........+........+········+
     *
     *            11111    2211111  2222222  3333332  4443333  4444444 55555555
     *   7654321  4321098  1098765  8765432  5432109  2109876  9876543 76543210
     *     |                        |                    |             |
     *     5th bit of z             |                    |             |
     *                              28th bit of z        |             57th bit of z
     *                                                   39th bit of z
     * ```
     *
     * @param num Number to encode as variable length unsigned 57 bit integer.
     */
    vu57(num: number): void;
    /**
     * #### `b1vu56`
     *
     * `b1vu56` stands for: 1 bit flag followed by variable length unsigned 56 bit integer.
     * It consumes up to 8 bytes.
     *
     * The high bit "?" of each byte indicates if the next byte should be
     * consumed, up to 8 bytes.
     *
     * - f - flag
     * - z - variable length unsigned 56 bit integer
     * - ? - whether the next byte is used for encoding
     *
     * ```
     * byte 1                                                         byte 8
     * +--------+........+........+........+........+........+........+········+
     * |f?zzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|?zzzzzzz|zzzzzzzz|
     * +--------+........+........+........+........+........+........+········+
     *
     *            1111     2111111  2222222  3333322  4433333  4444444 55555554
     *    654321  3210987  0987654  7654321  4321098  1098765  8765432 65432109
     *     |                        |                    |             |
     *     5th bit of z             |                    |             |
     *                              27th bit of z        |             56th bit of z
     *                                                   38th bit of z
     * ```
     *
     * @param num Number to encode as variable length unsigned 56 bit integer.
     */
    b1vu56(flag: 0 | 1, num: number): void;
}
