2021-04-08 12:19:38 +03:00
|
|
|
import { BigInteger } from 'big-integer'
|
|
|
|
|
|
|
|
/**
|
2021-07-25 21:03:40 +03:00
|
|
|
* Interface describing binary writer compatible with @mtqt/tl
|
2021-04-08 12:19:38 +03:00
|
|
|
* generated binary writers
|
|
|
|
*/
|
|
|
|
export interface ITlBinaryWriter {
|
|
|
|
/** Write signed 32-bit integer to the stream */
|
|
|
|
int32(val: number): void
|
|
|
|
|
|
|
|
/** Write unsigned 32-bit integer to the stream */
|
|
|
|
uint32(val: number): void
|
|
|
|
|
|
|
|
/** Write signed 64-bit integer to the stream */
|
|
|
|
long(val: BigInteger): void
|
|
|
|
|
|
|
|
/** Write signed 64-bit integer from buffer to the stream */
|
|
|
|
rawLong(val: Buffer): void
|
|
|
|
|
|
|
|
/** Write 32-bit floating point value to the stream */
|
|
|
|
float(val: number): void
|
|
|
|
|
|
|
|
/** Write 64-bit floating point value to the stream */
|
|
|
|
double(val: number): void
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Write TL-encoded boolean to the stream
|
|
|
|
* - `0xbc799737` = false
|
|
|
|
* - `0x997275b5` = true
|
|
|
|
*/
|
|
|
|
boolean(val: boolean): void
|
|
|
|
|
|
|
|
/** Write 128-bit integer as a buffer to the stream */
|
|
|
|
int128(val: Buffer): void
|
|
|
|
|
|
|
|
/** Write 256-bit integer as a buffer to the stream */
|
|
|
|
int256(val: Buffer): void
|
|
|
|
|
|
|
|
/** Write TL-encoded byte array to the stream (see [TL Base Types](https://core.telegram.org/mtproto/serialize#base-types)) */
|
|
|
|
bytes(val: Buffer): void
|
|
|
|
|
|
|
|
/** Write TL-encoded string to the stream (see [TL Base Types](https://core.telegram.org/mtproto/serialize#base-types))*/
|
|
|
|
string(val: string): void
|
|
|
|
|
|
|
|
/** Write TL object */
|
|
|
|
object(obj: unknown, bare?: boolean): void
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Write an array of TL objects
|
|
|
|
*
|
|
|
|
* @param fn Writer function
|
|
|
|
* @param items Items to be written
|
|
|
|
* @param bare Whether the vector is bare (i.e. vector ID should not be written)
|
|
|
|
*/
|
|
|
|
vector(fn: TlBinaryWriterFunction, items: unknown[], bare?: boolean): void
|
|
|
|
}
|
|
|
|
|
|
|
|
export type TlBinaryWriterFunction = (
|
|
|
|
this: ITlBinaryWriter,
|
2021-07-30 17:40:50 +03:00
|
|
|
obj: unknown,
|
|
|
|
bare?: boolean
|
2021-04-08 12:19:38 +03:00
|
|
|
) => void
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Mapping of TL object names to writer functions.
|
|
|
|
*/
|
|
|
|
export type TlWriterMap = Record<string, TlBinaryWriterFunction>
|
|
|
|
|
|
|
|
declare const __tlWriterMap: TlWriterMap
|
|
|
|
export default __tlWriterMap
|