import { Message } from "../process/Types"; import { BitStream } from "../serialization/BitStream"; /** These flags are used to encode the presence of optional fields in a Message */ export declare enum MessageFlags { None = 0, Reply = 1, Edited = 2, Text = 4, Words = 8, Emojis = 16, Attachments = 32, Reactions = 64, Mentions = 128, Domains = 256 } /** Defines how many bits are used for various fields in a Message */ export interface MessageBitConfig { dayBits: number; authorIdxBits: number; wordIdxBits: number; emojiIdxBits: number; mentionsIdxBits: number; domainsIdxBits: number; } /** * Default bit configuration for messages. * At the start we don't know how many authors, words, emojis, etc. we have, so we have to use a conservative * configuration that works for all possible values. * * These values are hand-picked. */ export declare const DefaultMessageBitConfig: MessageBitConfig; /** Writes the message into the stream using the provided bit configuration */ export declare const writeMessage: (message: Message, stream: BitStream, bitConfig: MessageBitConfig) => void; /** * Reads a whole message from the stream using the provided bit configuration. * If you don't need all the fields, you may want to use the `MessageView` class instead. */ export declare const readMessage: (stream: BitStream, bitConfig: MessageBitConfig) => Message;