UNPKG

@nuintun/qrcode

Version:

A pure JavaScript QRCode encode and decode library.

43 lines (42 loc) 2.12 kB
/** * @module encoder */ import { Mode } from '../../common/Mode.cjs'; import { FNC1 } from '../../common/interface.cjs'; import { ECLevel } from '../../common/ECLevel.cjs'; import { BitArray } from '../../common/BitArray.cjs'; import { ECBlocks } from '../../common/ECBlocks.cjs'; import { Byte } from '../segments/Byte.cjs'; import { ByteMatrix } from '../../common/ByteMatrix.cjs'; import { Hanzi } from '../segments/Hanzi.cjs'; import { Kanji } from '../segments/Kanji.cjs'; import { Numeric } from '../segments/Numeric.cjs'; import { Version } from '../../common/Version.cjs'; import { Alphanumeric } from '../segments/Alphanumeric.cjs'; export interface Hints { fnc1?: FNC1; } export interface SegmentBlock { mode: Mode; head: BitArray; body: BitArray; length: number; } export type Segment = Alphanumeric | Byte | Hanzi | Kanji | Numeric; export declare function injectECCodewords(bits: BitArray, { ecBlocks, numECCodewordsPerBlock }: ECBlocks): BitArray; export declare function appendTerminator(bits: BitArray, numDataCodewords: number): void; export declare function isByteMode(segment: Segment): segment is Byte; export declare function isHanziMode(segment: Segment): segment is Hanzi; export declare function appendModeInfo(bits: BitArray, mode: Mode): void; export declare function appendECI(bits: BitArray, segment: Segment, currentECIValue: number): number; export declare function appendFNC1Info(bits: BitArray, fnc1: FNC1): void; export declare function getSegmentLength(segment: Segment, bits: BitArray): number; export declare function appendLengthInfo(bits: BitArray, mode: Mode, version: Version, numLetters: number): void; export declare function willFit(numInputBits: number, version: Version, ecLevel: ECLevel): boolean; export declare function calculateBitsNeeded(segmentBlocks: SegmentBlock[], version: Version): number; export declare function chooseRecommendVersion(segmentBlocks: SegmentBlock[], ecLevel: ECLevel): Version; export declare function chooseBestMaskAndMatrix( codewords: BitArray, version: Version, ecLevel: ECLevel ): [mask: number, matrix: ByteMatrix];