@akamfoad/qr
Version:
Fully typed QRCode encoding implementation in JavaScript with no dependencies!
79 lines (72 loc) • 2.27 kB
text/typescript
declare class QRBitBuffer {
buffer: number[];
length: number;
constructor();
get(index: number): boolean;
put(num: number, length: number): void;
getLengthInBits(): number;
putBit(bit: boolean): void;
}
declare class QR8bitByte {
mode: number;
data: string;
constructor(data: string);
getLength(): number;
write(buffer: QRBitBuffer): void;
}
declare class QRRSBlock {
totalCount: number;
dataCount: number;
constructor(totalCount: number, dataCount: number);
static RS_BLOCK_TABLE: number[][];
static getRSBlocks(typeNumber: number, errorCorrectLevel: number): QRRSBlock[];
static getRsBlockTable(typeNumber: number, errorCorrectLevel: number): number[] | undefined;
}
declare class QRCode {
typeNumber: number;
errorCorrectLevel: number;
modules: (number | boolean | null)[][] | null;
moduleCount: number;
dataCache: number[] | null;
dataList: QR8bitByte[];
constructor(typeNumber: number, errorCorrectLevel: number);
addData(data: string): void;
isDark(row: number, col: number): number | boolean | null;
getModuleCount(): number;
make(): void;
makeImpl(test: boolean, maskPattern: number): void;
setupPositionProbePattern(row: number, col: number): void;
getBestMaskPattern(): number;
setupTimingPattern(): void;
setupPositionAdjustPattern(): void;
setupTypeNumber(test: boolean): void;
setupTypeInfo(test: boolean, maskPattern: number): void;
mapData(data: number[], maskPattern: number): void;
static PAD0: number;
static PAD1: number;
static createData(typeNumber: number, errorCorrectLevel: number, dataList: QR8bitByte[]): number[];
static createBytes(buffer: QRBitBuffer, rsBlocks: QRRSBlock[]): number[];
}
declare const ErrorCorrectLevel: {
/**
* Allows recovery of up to 7% data loss
*/
L: 1;
/**
* Allows recovery of up to 15% data loss
*/
M: 0;
/**
* Allows recovery of up to 25% data loss
*/
Q: 3;
/**
* Allows recovery of up to 30% data loss
*/
H: 2;
};
declare const qrcode: (data: string, opt?: {
typeNumber?: number;
errorCorrectLevel?: number;
}) => QRCode;
export { ErrorCorrectLevel, QRCode, qrcode };