smartbuffer.d.ts 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  1. /// <reference types="node" />
  2. /**
  3. * Object interface for constructing new SmartBuffer instances.
  4. */
  5. interface SmartBufferOptions {
  6. encoding?: BufferEncoding;
  7. size?: number;
  8. buff?: Buffer;
  9. }
  10. declare class SmartBuffer {
  11. length: number;
  12. private _encoding;
  13. private _buff;
  14. private _writeOffset;
  15. private _readOffset;
  16. /**
  17. * Creates a new SmartBuffer instance.
  18. *
  19. * @param options { SmartBufferOptions } The SmartBufferOptions to apply to this instance.
  20. */
  21. constructor(options?: SmartBufferOptions);
  22. /**
  23. * Creates a new SmartBuffer instance with the provided internal Buffer size and optional encoding.
  24. *
  25. * @param size { Number } The size of the internal Buffer.
  26. * @param encoding { String } The BufferEncoding to use for strings.
  27. *
  28. * @return { SmartBuffer }
  29. */
  30. static fromSize(size: number, encoding?: BufferEncoding): SmartBuffer;
  31. /**
  32. * Creates a new SmartBuffer instance with the provided Buffer and optional encoding.
  33. *
  34. * @param buffer { Buffer } The Buffer to use as the internal Buffer value.
  35. * @param encoding { String } The BufferEncoding to use for strings.
  36. *
  37. * @return { SmartBuffer }
  38. */
  39. static fromBuffer(buff: Buffer, encoding?: BufferEncoding): SmartBuffer;
  40. /**
  41. * Creates a new SmartBuffer instance with the provided SmartBufferOptions options.
  42. *
  43. * @param options { SmartBufferOptions } The options to use when creating the SmartBuffer instance.
  44. */
  45. static fromOptions(options: SmartBufferOptions): SmartBuffer;
  46. /**
  47. * Type checking function that determines if an object is a SmartBufferOptions object.
  48. */
  49. static isSmartBufferOptions(options: SmartBufferOptions): options is SmartBufferOptions;
  50. /**
  51. * Reads an Int8 value from the current read position or an optionally provided offset.
  52. *
  53. * @param offset { Number } The offset to read data from (optional)
  54. * @return { Number }
  55. */
  56. readInt8(offset?: number): number;
  57. /**
  58. * Reads an Int16BE value from the current read position or an optionally provided offset.
  59. *
  60. * @param offset { Number } The offset to read data from (optional)
  61. * @return { Number }
  62. */
  63. readInt16BE(offset?: number): number;
  64. /**
  65. * Reads an Int16LE value from the current read position or an optionally provided offset.
  66. *
  67. * @param offset { Number } The offset to read data from (optional)
  68. * @return { Number }
  69. */
  70. readInt16LE(offset?: number): number;
  71. /**
  72. * Reads an Int32BE value from the current read position or an optionally provided offset.
  73. *
  74. * @param offset { Number } The offset to read data from (optional)
  75. * @return { Number }
  76. */
  77. readInt32BE(offset?: number): number;
  78. /**
  79. * Reads an Int32LE value from the current read position or an optionally provided offset.
  80. *
  81. * @param offset { Number } The offset to read data from (optional)
  82. * @return { Number }
  83. */
  84. readInt32LE(offset?: number): number;
  85. /**
  86. * Reads a BigInt64BE value from the current read position or an optionally provided offset.
  87. *
  88. * @param offset { Number } The offset to read data from (optional)
  89. * @return { BigInt }
  90. */
  91. readBigInt64BE(offset?: number): bigint;
  92. /**
  93. * Reads a BigInt64LE value from the current read position or an optionally provided offset.
  94. *
  95. * @param offset { Number } The offset to read data from (optional)
  96. * @return { BigInt }
  97. */
  98. readBigInt64LE(offset?: number): bigint;
  99. /**
  100. * Writes an Int8 value to the current write position (or at optional offset).
  101. *
  102. * @param value { Number } The value to write.
  103. * @param offset { Number } The offset to write the value at.
  104. *
  105. * @return this
  106. */
  107. writeInt8(value: number, offset?: number): SmartBuffer;
  108. /**
  109. * Inserts an Int8 value at the given offset value.
  110. *
  111. * @param value { Number } The value to insert.
  112. * @param offset { Number } The offset to insert the value at.
  113. *
  114. * @return this
  115. */
  116. insertInt8(value: number, offset: number): SmartBuffer;
  117. /**
  118. * Writes an Int16BE value to the current write position (or at optional offset).
  119. *
  120. * @param value { Number } The value to write.
  121. * @param offset { Number } The offset to write the value at.
  122. *
  123. * @return this
  124. */
  125. writeInt16BE(value: number, offset?: number): SmartBuffer;
  126. /**
  127. * Inserts an Int16BE value at the given offset value.
  128. *
  129. * @param value { Number } The value to insert.
  130. * @param offset { Number } The offset to insert the value at.
  131. *
  132. * @return this
  133. */
  134. insertInt16BE(value: number, offset: number): SmartBuffer;
  135. /**
  136. * Writes an Int16LE value to the current write position (or at optional offset).
  137. *
  138. * @param value { Number } The value to write.
  139. * @param offset { Number } The offset to write the value at.
  140. *
  141. * @return this
  142. */
  143. writeInt16LE(value: number, offset?: number): SmartBuffer;
  144. /**
  145. * Inserts an Int16LE value at the given offset value.
  146. *
  147. * @param value { Number } The value to insert.
  148. * @param offset { Number } The offset to insert the value at.
  149. *
  150. * @return this
  151. */
  152. insertInt16LE(value: number, offset: number): SmartBuffer;
  153. /**
  154. * Writes an Int32BE value to the current write position (or at optional offset).
  155. *
  156. * @param value { Number } The value to write.
  157. * @param offset { Number } The offset to write the value at.
  158. *
  159. * @return this
  160. */
  161. writeInt32BE(value: number, offset?: number): SmartBuffer;
  162. /**
  163. * Inserts an Int32BE value at the given offset value.
  164. *
  165. * @param value { Number } The value to insert.
  166. * @param offset { Number } The offset to insert the value at.
  167. *
  168. * @return this
  169. */
  170. insertInt32BE(value: number, offset: number): SmartBuffer;
  171. /**
  172. * Writes an Int32LE value to the current write position (or at optional offset).
  173. *
  174. * @param value { Number } The value to write.
  175. * @param offset { Number } The offset to write the value at.
  176. *
  177. * @return this
  178. */
  179. writeInt32LE(value: number, offset?: number): SmartBuffer;
  180. /**
  181. * Inserts an Int32LE value at the given offset value.
  182. *
  183. * @param value { Number } The value to insert.
  184. * @param offset { Number } The offset to insert the value at.
  185. *
  186. * @return this
  187. */
  188. insertInt32LE(value: number, offset: number): SmartBuffer;
  189. /**
  190. * Writes a BigInt64BE value to the current write position (or at optional offset).
  191. *
  192. * @param value { BigInt } The value to write.
  193. * @param offset { Number } The offset to write the value at.
  194. *
  195. * @return this
  196. */
  197. writeBigInt64BE(value: bigint, offset?: number): SmartBuffer;
  198. /**
  199. * Inserts a BigInt64BE value at the given offset value.
  200. *
  201. * @param value { BigInt } The value to insert.
  202. * @param offset { Number } The offset to insert the value at.
  203. *
  204. * @return this
  205. */
  206. insertBigInt64BE(value: bigint, offset: number): SmartBuffer;
  207. /**
  208. * Writes a BigInt64LE value to the current write position (or at optional offset).
  209. *
  210. * @param value { BigInt } The value to write.
  211. * @param offset { Number } The offset to write the value at.
  212. *
  213. * @return this
  214. */
  215. writeBigInt64LE(value: bigint, offset?: number): SmartBuffer;
  216. /**
  217. * Inserts a Int64LE value at the given offset value.
  218. *
  219. * @param value { BigInt } The value to insert.
  220. * @param offset { Number } The offset to insert the value at.
  221. *
  222. * @return this
  223. */
  224. insertBigInt64LE(value: bigint, offset: number): SmartBuffer;
  225. /**
  226. * Reads an UInt8 value from the current read position or an optionally provided offset.
  227. *
  228. * @param offset { Number } The offset to read data from (optional)
  229. * @return { Number }
  230. */
  231. readUInt8(offset?: number): number;
  232. /**
  233. * Reads an UInt16BE value from the current read position or an optionally provided offset.
  234. *
  235. * @param offset { Number } The offset to read data from (optional)
  236. * @return { Number }
  237. */
  238. readUInt16BE(offset?: number): number;
  239. /**
  240. * Reads an UInt16LE value from the current read position or an optionally provided offset.
  241. *
  242. * @param offset { Number } The offset to read data from (optional)
  243. * @return { Number }
  244. */
  245. readUInt16LE(offset?: number): number;
  246. /**
  247. * Reads an UInt32BE value from the current read position or an optionally provided offset.
  248. *
  249. * @param offset { Number } The offset to read data from (optional)
  250. * @return { Number }
  251. */
  252. readUInt32BE(offset?: number): number;
  253. /**
  254. * Reads an UInt32LE value from the current read position or an optionally provided offset.
  255. *
  256. * @param offset { Number } The offset to read data from (optional)
  257. * @return { Number }
  258. */
  259. readUInt32LE(offset?: number): number;
  260. /**
  261. * Reads a BigUInt64BE value from the current read position or an optionally provided offset.
  262. *
  263. * @param offset { Number } The offset to read data from (optional)
  264. * @return { BigInt }
  265. */
  266. readBigUInt64BE(offset?: number): bigint;
  267. /**
  268. * Reads a BigUInt64LE value from the current read position or an optionally provided offset.
  269. *
  270. * @param offset { Number } The offset to read data from (optional)
  271. * @return { BigInt }
  272. */
  273. readBigUInt64LE(offset?: number): bigint;
  274. /**
  275. * Writes an UInt8 value to the current write position (or at optional offset).
  276. *
  277. * @param value { Number } The value to write.
  278. * @param offset { Number } The offset to write the value at.
  279. *
  280. * @return this
  281. */
  282. writeUInt8(value: number, offset?: number): SmartBuffer;
  283. /**
  284. * Inserts an UInt8 value at the given offset value.
  285. *
  286. * @param value { Number } The value to insert.
  287. * @param offset { Number } The offset to insert the value at.
  288. *
  289. * @return this
  290. */
  291. insertUInt8(value: number, offset: number): SmartBuffer;
  292. /**
  293. * Writes an UInt16BE value to the current write position (or at optional offset).
  294. *
  295. * @param value { Number } The value to write.
  296. * @param offset { Number } The offset to write the value at.
  297. *
  298. * @return this
  299. */
  300. writeUInt16BE(value: number, offset?: number): SmartBuffer;
  301. /**
  302. * Inserts an UInt16BE value at the given offset value.
  303. *
  304. * @param value { Number } The value to insert.
  305. * @param offset { Number } The offset to insert the value at.
  306. *
  307. * @return this
  308. */
  309. insertUInt16BE(value: number, offset: number): SmartBuffer;
  310. /**
  311. * Writes an UInt16LE value to the current write position (or at optional offset).
  312. *
  313. * @param value { Number } The value to write.
  314. * @param offset { Number } The offset to write the value at.
  315. *
  316. * @return this
  317. */
  318. writeUInt16LE(value: number, offset?: number): SmartBuffer;
  319. /**
  320. * Inserts an UInt16LE value at the given offset value.
  321. *
  322. * @param value { Number } The value to insert.
  323. * @param offset { Number } The offset to insert the value at.
  324. *
  325. * @return this
  326. */
  327. insertUInt16LE(value: number, offset: number): SmartBuffer;
  328. /**
  329. * Writes an UInt32BE value to the current write position (or at optional offset).
  330. *
  331. * @param value { Number } The value to write.
  332. * @param offset { Number } The offset to write the value at.
  333. *
  334. * @return this
  335. */
  336. writeUInt32BE(value: number, offset?: number): SmartBuffer;
  337. /**
  338. * Inserts an UInt32BE value at the given offset value.
  339. *
  340. * @param value { Number } The value to insert.
  341. * @param offset { Number } The offset to insert the value at.
  342. *
  343. * @return this
  344. */
  345. insertUInt32BE(value: number, offset: number): SmartBuffer;
  346. /**
  347. * Writes an UInt32LE value to the current write position (or at optional offset).
  348. *
  349. * @param value { Number } The value to write.
  350. * @param offset { Number } The offset to write the value at.
  351. *
  352. * @return this
  353. */
  354. writeUInt32LE(value: number, offset?: number): SmartBuffer;
  355. /**
  356. * Inserts an UInt32LE value at the given offset value.
  357. *
  358. * @param value { Number } The value to insert.
  359. * @param offset { Number } The offset to insert the value at.
  360. *
  361. * @return this
  362. */
  363. insertUInt32LE(value: number, offset: number): SmartBuffer;
  364. /**
  365. * Writes a BigUInt64BE value to the current write position (or at optional offset).
  366. *
  367. * @param value { Number } The value to write.
  368. * @param offset { Number } The offset to write the value at.
  369. *
  370. * @return this
  371. */
  372. writeBigUInt64BE(value: bigint, offset?: number): SmartBuffer;
  373. /**
  374. * Inserts a BigUInt64BE value at the given offset value.
  375. *
  376. * @param value { Number } The value to insert.
  377. * @param offset { Number } The offset to insert the value at.
  378. *
  379. * @return this
  380. */
  381. insertBigUInt64BE(value: bigint, offset: number): SmartBuffer;
  382. /**
  383. * Writes a BigUInt64LE value to the current write position (or at optional offset).
  384. *
  385. * @param value { Number } The value to write.
  386. * @param offset { Number } The offset to write the value at.
  387. *
  388. * @return this
  389. */
  390. writeBigUInt64LE(value: bigint, offset?: number): SmartBuffer;
  391. /**
  392. * Inserts a BigUInt64LE value at the given offset value.
  393. *
  394. * @param value { Number } The value to insert.
  395. * @param offset { Number } The offset to insert the value at.
  396. *
  397. * @return this
  398. */
  399. insertBigUInt64LE(value: bigint, offset: number): SmartBuffer;
  400. /**
  401. * Reads an FloatBE value from the current read position or an optionally provided offset.
  402. *
  403. * @param offset { Number } The offset to read data from (optional)
  404. * @return { Number }
  405. */
  406. readFloatBE(offset?: number): number;
  407. /**
  408. * Reads an FloatLE value from the current read position or an optionally provided offset.
  409. *
  410. * @param offset { Number } The offset to read data from (optional)
  411. * @return { Number }
  412. */
  413. readFloatLE(offset?: number): number;
  414. /**
  415. * Writes a FloatBE value to the current write position (or at optional offset).
  416. *
  417. * @param value { Number } The value to write.
  418. * @param offset { Number } The offset to write the value at.
  419. *
  420. * @return this
  421. */
  422. writeFloatBE(value: number, offset?: number): SmartBuffer;
  423. /**
  424. * Inserts a FloatBE value at the given offset value.
  425. *
  426. * @param value { Number } The value to insert.
  427. * @param offset { Number } The offset to insert the value at.
  428. *
  429. * @return this
  430. */
  431. insertFloatBE(value: number, offset: number): SmartBuffer;
  432. /**
  433. * Writes a FloatLE value to the current write position (or at optional offset).
  434. *
  435. * @param value { Number } The value to write.
  436. * @param offset { Number } The offset to write the value at.
  437. *
  438. * @return this
  439. */
  440. writeFloatLE(value: number, offset?: number): SmartBuffer;
  441. /**
  442. * Inserts a FloatLE value at the given offset value.
  443. *
  444. * @param value { Number } The value to insert.
  445. * @param offset { Number } The offset to insert the value at.
  446. *
  447. * @return this
  448. */
  449. insertFloatLE(value: number, offset: number): SmartBuffer;
  450. /**
  451. * Reads an DoublEBE value from the current read position or an optionally provided offset.
  452. *
  453. * @param offset { Number } The offset to read data from (optional)
  454. * @return { Number }
  455. */
  456. readDoubleBE(offset?: number): number;
  457. /**
  458. * Reads an DoubleLE value from the current read position or an optionally provided offset.
  459. *
  460. * @param offset { Number } The offset to read data from (optional)
  461. * @return { Number }
  462. */
  463. readDoubleLE(offset?: number): number;
  464. /**
  465. * Writes a DoubleBE value to the current write position (or at optional offset).
  466. *
  467. * @param value { Number } The value to write.
  468. * @param offset { Number } The offset to write the value at.
  469. *
  470. * @return this
  471. */
  472. writeDoubleBE(value: number, offset?: number): SmartBuffer;
  473. /**
  474. * Inserts a DoubleBE value at the given offset value.
  475. *
  476. * @param value { Number } The value to insert.
  477. * @param offset { Number } The offset to insert the value at.
  478. *
  479. * @return this
  480. */
  481. insertDoubleBE(value: number, offset: number): SmartBuffer;
  482. /**
  483. * Writes a DoubleLE value to the current write position (or at optional offset).
  484. *
  485. * @param value { Number } The value to write.
  486. * @param offset { Number } The offset to write the value at.
  487. *
  488. * @return this
  489. */
  490. writeDoubleLE(value: number, offset?: number): SmartBuffer;
  491. /**
  492. * Inserts a DoubleLE value at the given offset value.
  493. *
  494. * @param value { Number } The value to insert.
  495. * @param offset { Number } The offset to insert the value at.
  496. *
  497. * @return this
  498. */
  499. insertDoubleLE(value: number, offset: number): SmartBuffer;
  500. /**
  501. * Reads a String from the current read position.
  502. *
  503. * @param arg1 { Number | String } The number of bytes to read as a String, or the BufferEncoding to use for
  504. * the string (Defaults to instance level encoding).
  505. * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
  506. *
  507. * @return { String }
  508. */
  509. readString(arg1?: number | BufferEncoding, encoding?: BufferEncoding): string;
  510. /**
  511. * Inserts a String
  512. *
  513. * @param value { String } The String value to insert.
  514. * @param offset { Number } The offset to insert the string at.
  515. * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
  516. *
  517. * @return this
  518. */
  519. insertString(value: string, offset: number, encoding?: BufferEncoding): SmartBuffer;
  520. /**
  521. * Writes a String
  522. *
  523. * @param value { String } The String value to write.
  524. * @param arg2 { Number | String } The offset to write the string at, or the BufferEncoding to use.
  525. * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
  526. *
  527. * @return this
  528. */
  529. writeString(value: string, arg2?: number | BufferEncoding, encoding?: BufferEncoding): SmartBuffer;
  530. /**
  531. * Reads a null-terminated String from the current read position.
  532. *
  533. * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
  534. *
  535. * @return { String }
  536. */
  537. readStringNT(encoding?: BufferEncoding): string;
  538. /**
  539. * Inserts a null-terminated String.
  540. *
  541. * @param value { String } The String value to write.
  542. * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
  543. * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
  544. *
  545. * @return this
  546. */
  547. insertStringNT(value: string, offset: number, encoding?: BufferEncoding): SmartBuffer;
  548. /**
  549. * Writes a null-terminated String.
  550. *
  551. * @param value { String } The String value to write.
  552. * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
  553. * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
  554. *
  555. * @return this
  556. */
  557. writeStringNT(value: string, arg2?: number | BufferEncoding, encoding?: BufferEncoding): SmartBuffer;
  558. /**
  559. * Reads a Buffer from the internal read position.
  560. *
  561. * @param length { Number } The length of data to read as a Buffer.
  562. *
  563. * @return { Buffer }
  564. */
  565. readBuffer(length?: number): Buffer;
  566. /**
  567. * Writes a Buffer to the current write position.
  568. *
  569. * @param value { Buffer } The Buffer to write.
  570. * @param offset { Number } The offset to write the Buffer to.
  571. *
  572. * @return this
  573. */
  574. insertBuffer(value: Buffer, offset: number): SmartBuffer;
  575. /**
  576. * Writes a Buffer to the current write position.
  577. *
  578. * @param value { Buffer } The Buffer to write.
  579. * @param offset { Number } The offset to write the Buffer to.
  580. *
  581. * @return this
  582. */
  583. writeBuffer(value: Buffer, offset?: number): SmartBuffer;
  584. /**
  585. * Reads a null-terminated Buffer from the current read poisiton.
  586. *
  587. * @return { Buffer }
  588. */
  589. readBufferNT(): Buffer;
  590. /**
  591. * Inserts a null-terminated Buffer.
  592. *
  593. * @param value { Buffer } The Buffer to write.
  594. * @param offset { Number } The offset to write the Buffer to.
  595. *
  596. * @return this
  597. */
  598. insertBufferNT(value: Buffer, offset: number): SmartBuffer;
  599. /**
  600. * Writes a null-terminated Buffer.
  601. *
  602. * @param value { Buffer } The Buffer to write.
  603. * @param offset { Number } The offset to write the Buffer to.
  604. *
  605. * @return this
  606. */
  607. writeBufferNT(value: Buffer, offset?: number): SmartBuffer;
  608. /**
  609. * Clears the SmartBuffer instance to its original empty state.
  610. */
  611. clear(): SmartBuffer;
  612. /**
  613. * Gets the remaining data left to be read from the SmartBuffer instance.
  614. *
  615. * @return { Number }
  616. */
  617. remaining(): number;
  618. /**
  619. * Gets the current read offset value of the SmartBuffer instance.
  620. *
  621. * @return { Number }
  622. */
  623. /**
  624. * Sets the read offset value of the SmartBuffer instance.
  625. *
  626. * @param offset { Number } - The offset value to set.
  627. */
  628. readOffset: number;
  629. /**
  630. * Gets the current write offset value of the SmartBuffer instance.
  631. *
  632. * @return { Number }
  633. */
  634. /**
  635. * Sets the write offset value of the SmartBuffer instance.
  636. *
  637. * @param offset { Number } - The offset value to set.
  638. */
  639. writeOffset: number;
  640. /**
  641. * Gets the currently set string encoding of the SmartBuffer instance.
  642. *
  643. * @return { BufferEncoding } The string Buffer encoding currently set.
  644. */
  645. /**
  646. * Sets the string encoding of the SmartBuffer instance.
  647. *
  648. * @param encoding { BufferEncoding } The string Buffer encoding to set.
  649. */
  650. encoding: BufferEncoding;
  651. /**
  652. * Gets the underlying internal Buffer. (This includes unmanaged data in the Buffer)
  653. *
  654. * @return { Buffer } The Buffer value.
  655. */
  656. readonly internalBuffer: Buffer;
  657. /**
  658. * Gets the value of the internal managed Buffer (Includes managed data only)
  659. *
  660. * @param { Buffer }
  661. */
  662. toBuffer(): Buffer;
  663. /**
  664. * Gets the String value of the internal managed Buffer
  665. *
  666. * @param encoding { String } The BufferEncoding to display the Buffer as (defaults to instance level encoding).
  667. */
  668. toString(encoding?: BufferEncoding): string;
  669. /**
  670. * Destroys the SmartBuffer instance.
  671. */
  672. destroy(): SmartBuffer;
  673. /**
  674. * Handles inserting and writing strings.
  675. *
  676. * @param value { String } The String value to insert.
  677. * @param isInsert { Boolean } True if inserting a string, false if writing.
  678. * @param arg2 { Number | String } The offset to insert the string at, or the BufferEncoding to use.
  679. * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
  680. */
  681. private _handleString;
  682. /**
  683. * Handles writing or insert of a Buffer.
  684. *
  685. * @param value { Buffer } The Buffer to write.
  686. * @param offset { Number } The offset to write the Buffer to.
  687. */
  688. private _handleBuffer;
  689. /**
  690. * Ensures that the internal Buffer is large enough to read data.
  691. *
  692. * @param length { Number } The length of the data that needs to be read.
  693. * @param offset { Number } The offset of the data that needs to be read.
  694. */
  695. private ensureReadable;
  696. /**
  697. * Ensures that the internal Buffer is large enough to insert data.
  698. *
  699. * @param dataLength { Number } The length of the data that needs to be written.
  700. * @param offset { Number } The offset of the data to be written.
  701. */
  702. private ensureInsertable;
  703. /**
  704. * Ensures that the internal Buffer is large enough to write data.
  705. *
  706. * @param dataLength { Number } The length of the data that needs to be written.
  707. * @param offset { Number } The offset of the data to be written (defaults to writeOffset).
  708. */
  709. private _ensureWriteable;
  710. /**
  711. * Ensures that the internal Buffer is large enough to write at least the given amount of data.
  712. *
  713. * @param minLength { Number } The minimum length of the data needs to be written.
  714. */
  715. private _ensureCapacity;
  716. /**
  717. * Reads a numeric number value using the provided function.
  718. *
  719. * @typeparam T { number | bigint } The type of the value to be read
  720. *
  721. * @param func { Function(offset: number) => number } The function to read data on the internal Buffer with.
  722. * @param byteSize { Number } The number of bytes read.
  723. * @param offset { Number } The offset to read from (optional). When this is not provided, the managed readOffset is used instead.
  724. *
  725. * @returns { T } the number value
  726. */
  727. private _readNumberValue;
  728. /**
  729. * Inserts a numeric number value based on the given offset and value.
  730. *
  731. * @typeparam T { number | bigint } The type of the value to be written
  732. *
  733. * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with.
  734. * @param byteSize { Number } The number of bytes written.
  735. * @param value { T } The number value to write.
  736. * @param offset { Number } the offset to write the number at (REQUIRED).
  737. *
  738. * @returns SmartBuffer this buffer
  739. */
  740. private _insertNumberValue;
  741. /**
  742. * Writes a numeric number value based on the given offset and value.
  743. *
  744. * @typeparam T { number | bigint } The type of the value to be written
  745. *
  746. * @param func { Function(offset: T, offset?) => number} The function to write data on the internal Buffer with.
  747. * @param byteSize { Number } The number of bytes written.
  748. * @param value { T } The number value to write.
  749. * @param offset { Number } the offset to write the number at (REQUIRED).
  750. *
  751. * @returns SmartBuffer this buffer
  752. */
  753. private _writeNumberValue;
  754. }
  755. export { SmartBufferOptions, SmartBuffer };