qrcodegen.d.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /**
  2. * @license QR Code generator library (TypeScript)
  3. * Copyright (c) Project Nayuki.
  4. * SPDX-License-Identifier: MIT
  5. */
  6. declare namespace qrcodegen {
  7. type bit = number;
  8. type byte = number;
  9. type int = number;
  10. export class QrCode {
  11. readonly version: int;
  12. readonly errorCorrectionLevel: QrCode.Ecc;
  13. static encodeText(text: string, ecl: QrCode.Ecc): QrCode;
  14. static encodeBinary(data: Readonly<Array<byte>>, ecl: QrCode.Ecc): QrCode;
  15. static encodeSegments(segs: Readonly<Array<QrSegment>>, ecl: QrCode.Ecc, minVersion?: int, maxVersion?: int, mask?: int, boostEcl?: boolean): QrCode;
  16. readonly size: int;
  17. readonly mask: int;
  18. private readonly modules;
  19. private readonly isFunction;
  20. constructor(version: int, errorCorrectionLevel: QrCode.Ecc, dataCodewords: Readonly<Array<byte>>, msk: int);
  21. getModule(x: int, y: int): boolean;
  22. getModules(): boolean[][];
  23. private drawFunctionPatterns;
  24. private drawFormatBits;
  25. private drawVersion;
  26. private drawFinderPattern;
  27. private drawAlignmentPattern;
  28. private setFunctionModule;
  29. private addEccAndInterleave;
  30. private drawCodewords;
  31. private applyMask;
  32. private getPenaltyScore;
  33. private getAlignmentPatternPositions;
  34. private static getNumRawDataModules;
  35. private static getNumDataCodewords;
  36. private static reedSolomonComputeDivisor;
  37. private static reedSolomonComputeRemainder;
  38. private static reedSolomonMultiply;
  39. private finderPenaltyCountPatterns;
  40. private finderPenaltyTerminateAndCount;
  41. private finderPenaltyAddHistory;
  42. static readonly MIN_VERSION: int;
  43. static readonly MAX_VERSION: int;
  44. private static readonly PENALTY_N1;
  45. private static readonly PENALTY_N2;
  46. private static readonly PENALTY_N3;
  47. private static readonly PENALTY_N4;
  48. private static readonly ECC_CODEWORDS_PER_BLOCK;
  49. private static readonly NUM_ERROR_CORRECTION_BLOCKS;
  50. }
  51. export class QrSegment {
  52. readonly mode: QrSegment.Mode;
  53. readonly numChars: int;
  54. private readonly bitData;
  55. static makeBytes(data: Readonly<Array<byte>>): QrSegment;
  56. static makeNumeric(digits: string): QrSegment;
  57. static makeAlphanumeric(text: string): QrSegment;
  58. static makeSegments(text: string): Array<QrSegment>;
  59. static makeEci(assignVal: int): QrSegment;
  60. static isNumeric(text: string): boolean;
  61. static isAlphanumeric(text: string): boolean;
  62. constructor(mode: QrSegment.Mode, numChars: int, bitData: Array<bit>);
  63. getData(): Array<bit>;
  64. static getTotalBits(segs: Readonly<Array<QrSegment>>, version: int): number;
  65. private static toUtf8ByteArray;
  66. private static readonly NUMERIC_REGEX;
  67. private static readonly ALPHANUMERIC_REGEX;
  68. private static readonly ALPHANUMERIC_CHARSET;
  69. }
  70. export {};
  71. }
  72. declare namespace qrcodegen.QrCode {
  73. type int = number;
  74. export class Ecc {
  75. readonly ordinal: int;
  76. readonly formatBits: int;
  77. static readonly LOW: Ecc;
  78. static readonly MEDIUM: Ecc;
  79. static readonly QUARTILE: Ecc;
  80. static readonly HIGH: Ecc;
  81. private constructor();
  82. }
  83. export {};
  84. }
  85. declare namespace qrcodegen.QrSegment {
  86. type int = number;
  87. export class Mode {
  88. readonly modeBits: int;
  89. private readonly numBitsCharCount;
  90. static readonly NUMERIC: Mode;
  91. static readonly ALPHANUMERIC: Mode;
  92. static readonly BYTE: Mode;
  93. static readonly KANJI: Mode;
  94. static readonly ECI: Mode;
  95. private constructor();
  96. numCharCountBits(ver: int): int;
  97. }
  98. export {};
  99. }
  100. export default qrcodegen;