mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
501 lines
15 KiB
TypeScript
501 lines
15 KiB
TypeScript
// Type definitions for non-npm package jsqrcode 1.0
|
|
// Project: https://github.com/LazarSoft/jsqrcode
|
|
// Definitions by: Ricardo Azzi Silva <https://github.com/lordazzi>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
declare function URShift(number: number, bits: number): number;
|
|
|
|
interface ResultPointCallback {
|
|
foundPossibleResultPoint(point: FinderPattern): void;
|
|
}
|
|
|
|
declare class AlignmentPattern {
|
|
private x: number;
|
|
private y: number;
|
|
private count: number;
|
|
private estimatedModuleSize: number;
|
|
|
|
readonly X: number;
|
|
readonly Y: number;
|
|
readonly EstimatedModuleSize: number;
|
|
readonly Count: number;
|
|
|
|
constructor(posX: number, posY: number, estimatedModuleSize: number);
|
|
|
|
incrementCount(): void;
|
|
|
|
aboutEquals(moduleSize: number, i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class AlignmentPatternFinder {
|
|
possibleCenters: AlignmentPattern[];
|
|
crossCheckStateCount: [number, number, number];
|
|
image: Uint8Array;
|
|
startX: number;
|
|
startY: number;
|
|
width: number;
|
|
height: number;
|
|
moduleSize: number;
|
|
resultPointCallback: ResultPointCallback;
|
|
|
|
constructor(
|
|
image: Uint8Array, startX: number, startY: number,
|
|
width: number, height: number,
|
|
moduleSize: number, resultPointCallback: ResultPointCallback
|
|
);
|
|
|
|
private centerFromEnd(stateCount: number, end: number): number;
|
|
|
|
private foundPatternCross(stateCount: number): boolean;
|
|
|
|
private handlePossibleCenter(stateCount: number, i: number, j: number): AlignmentPattern;
|
|
|
|
find(): AlignmentPattern;
|
|
}
|
|
|
|
declare class BitMatrix {
|
|
private width: number;
|
|
private height: number;
|
|
|
|
readonly Width: number;
|
|
readonly Height: number;
|
|
readonly Dimension: number;
|
|
|
|
rowSize: number;
|
|
bits: number[];
|
|
|
|
constructor(width: number, height?: number);
|
|
|
|
get_Renamed(x: number, y: number): boolean;
|
|
set_Renamed(x: number, y: number): void;
|
|
flip(x: number, y: number): void;
|
|
clear(): void;
|
|
setRegion(left: number, top: number, width: number, height: number): void;
|
|
}
|
|
|
|
declare class BitMatrixParser {
|
|
bitMatrix: BitMatrix;
|
|
parsedVersion: Version;
|
|
parsedFormatInfo: FormatInformation;
|
|
|
|
constructor(bitMatrix: BitMatrix);
|
|
|
|
copyBit(i: number, j: number, versionBits: number): number;
|
|
readFormatInformation(): FormatInformation;
|
|
readVersion(): Version;
|
|
readCodewords(): number[];
|
|
}
|
|
|
|
declare class DataBlock {
|
|
static getDataBlocks(
|
|
rawCodewords: number[], version: Version, ecLevel: ErrorCorrectionLevel
|
|
): DataBlock[];
|
|
|
|
private numDataCodewords: number;
|
|
private codewords: number[];
|
|
|
|
readonly NumDataCodewords: number;
|
|
readonly Codewords: number[];
|
|
|
|
constructor(numDataCodewords: number, codewords: number[]);
|
|
}
|
|
|
|
declare class QRCodeDataBlockReader {
|
|
blockPointer: number;
|
|
bitPointer: number;
|
|
dataLength: number;
|
|
dataLengthMode: number;
|
|
blocks: number[];
|
|
numErrorCorrectionCode: number;
|
|
|
|
readonly DataByte: Array<string | number[]>;
|
|
|
|
constructor(blocks: number[], version: number, numErrorCorrectionCode: number);
|
|
|
|
getNextBits(numBits: number): number;
|
|
NextMode(): number;
|
|
getDataLength(modeIndicator: number): number;
|
|
getRomanAndFigureString(dataLength: number): string;
|
|
getFigureString(dataLength: number): string;
|
|
get8bitByteArray(dataLength: number): number[];
|
|
getKanjiString(dataLength: number): string;
|
|
parseECIValue(): number;
|
|
}
|
|
|
|
declare abstract class DataMask {
|
|
private static DATA_MASKS: DataMask[];
|
|
|
|
static forReference(reference: number): DataMask;
|
|
|
|
abstract unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
abstract isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask000 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask001 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask010 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask011 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask100 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask101 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask110 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class DataMask111 extends DataMask {
|
|
unmaskBitMatrix(bits: number[], dimension: number): void;
|
|
|
|
isMasked(i: number, j: number): boolean;
|
|
}
|
|
|
|
declare const Decoder: {
|
|
rsDecoder: ReedSolomonDecoder,
|
|
|
|
correctErrors(codewordBytes: number[], numDataCodewords: number): void;
|
|
|
|
decode(bits: BitMatrix): QRCodeDataBlockReader;
|
|
};
|
|
|
|
declare class PerspectiveTransform {
|
|
a11: number;
|
|
a12: number;
|
|
a13: number;
|
|
a21: number;
|
|
a22: number;
|
|
a23: number;
|
|
a31: number;
|
|
a32: number;
|
|
a33: number;
|
|
|
|
static quadrilateralToQuadrilateral(
|
|
x0: number, y0: number, x1: number, y1: number,
|
|
x2: number, y2: number, x3: number, y3: number,
|
|
x0p: number, y0p: number, x1p: number, y1p: number,
|
|
x2p: number, y2p: number, x3p: number, y3p: number
|
|
): PerspectiveTransform;
|
|
static squareToQuadrilateral(
|
|
x0: number, y0: number, x1: number, y1: number,
|
|
x2: number, y2: number, x3: number, y3: number
|
|
): PerspectiveTransform;
|
|
static quadrilateralToSquare(
|
|
x0: number, y0: number, x1: number, y1: number,
|
|
x2: number, y2: number, x3: number, y3: number
|
|
): PerspectiveTransform;
|
|
|
|
constructor(
|
|
a11: number, a21: number, a31: number,
|
|
a12: number, a22: number, a32: number,
|
|
a13: number, a23: number, a33: number
|
|
);
|
|
|
|
transformPoints1(points: number[]): void;
|
|
transformPoints2(xValues: number[], yValues: number[]): void;
|
|
buildAdjoint(): PerspectiveTransform;
|
|
times(other: PerspectiveTransform): PerspectiveTransform;
|
|
}
|
|
|
|
declare class DetectorResult {
|
|
bits: BitMatrix;
|
|
points: [DetectorResult, DetectorResult, DetectorResult] |
|
|
[DetectorResult, DetectorResult, DetectorResult, DetectorResult];
|
|
|
|
constructor(
|
|
bits: BitMatrix,
|
|
points: [DetectorResult, DetectorResult, DetectorResult] |
|
|
[DetectorResult, DetectorResult, DetectorResult, DetectorResult]
|
|
);
|
|
}
|
|
|
|
declare class Detector {
|
|
image: Uint8Array;
|
|
resultPointCallback: ResultPointCallback;
|
|
|
|
constructor(image: Uint8Array);
|
|
|
|
sizeOfBlackWhiteBlackRun(fromX: number, fromY: number, toX: number, toY: number): number;
|
|
sizeOfBlackWhiteBlackRunBothWays(fromX: number, fromY: number, toX: number, toY: number): number;
|
|
calculateModuleSizeOneWay(pattern: AlignmentPattern, otherPattern: AlignmentPattern): number;
|
|
calculateModuleSize(topLeft: AlignmentPattern, topRight: AlignmentPattern, bottomLeft: AlignmentPattern): number;
|
|
distance(pattern1: AlignmentPattern, pattern2: AlignmentPattern): number;
|
|
computeDimension(topLeft: AlignmentPattern, topRight: AlignmentPattern, bottomLeft: AlignmentPattern, moduleSize: number): number;
|
|
findAlignmentInRegion(overallEstModuleSize: number, estAlignmentX: number, estAlignmentY: number, allowanceFactor: number): AlignmentPattern;
|
|
createTransform(topLeft: AlignmentPattern, topRight: AlignmentPattern, bottomLeft: AlignmentPattern, alignmentPattern: AlignmentPattern, dimension: number): PerspectiveTransform;
|
|
sampleGrid(image: Uint8Array, transform: PerspectiveTransform, dimension: number): BitMatrix;
|
|
processFinderPatternInfo(info: FinderPatternInfo): DetectorResult;
|
|
detect(): DetectorResult;
|
|
}
|
|
|
|
declare const L: ErrorCorrectionLevel;
|
|
declare const M: ErrorCorrectionLevel;
|
|
declare const Q: ErrorCorrectionLevel;
|
|
declare const H: ErrorCorrectionLevel;
|
|
declare const FOR_BITS: ErrorCorrectionLevel[];
|
|
|
|
declare class ErrorCorrectionLevel {
|
|
private ordinal_Renamed_Field: number;
|
|
private bits: number;
|
|
private name: string;
|
|
|
|
readonly Bits: number;
|
|
readonly Name: string;
|
|
|
|
static forBits(bits: number): ErrorCorrectionLevel;
|
|
|
|
constructor(ordinal: number, bits: number, name: string);
|
|
}
|
|
declare const MIN_SKIP: number;
|
|
declare const MAX_MODULES: number;
|
|
declare const INTEGER_MATH_SHIFT: number;
|
|
declare const CENTER_QUORUM: number;
|
|
|
|
declare class FinderPattern {
|
|
private x: number;
|
|
private y: number;
|
|
private count: number;
|
|
private estimatedModuleSize: number;
|
|
|
|
readonly X: number;
|
|
readonly Y: number;
|
|
readonly Count: number;
|
|
readonly EstimatedModuleSize: number;
|
|
|
|
constructor(posX: number, posY: number, estimatedModuleSize: number);
|
|
|
|
incrementCount(): void;
|
|
aboutEquals(moduleSize: number, i: number, j: number): boolean;
|
|
}
|
|
|
|
declare class FinderPatternInfo {
|
|
readonly BottomLeft: AlignmentPattern;
|
|
readonly TopLeft: AlignmentPattern;
|
|
readonly TopRight: AlignmentPattern;
|
|
|
|
constructor(patternCenters: [AlignmentPattern, AlignmentPattern, AlignmentPattern]);
|
|
}
|
|
|
|
declare class FinderPatternFinder {
|
|
image: Uint8Array;
|
|
possibleCenters: FinderPattern[];
|
|
hasSkipped: boolean;
|
|
resultPointCallback: ResultPointCallback;
|
|
|
|
private crossCheckStateCount: [number, number, number, number, number];
|
|
readonly CrossCheckStateCount: [number, number, number, number, number];
|
|
|
|
foundPatternCross(stateCount: [number, number, number, number, number]): boolean;
|
|
centerFromEnd(stateCount: [number, number, number, number, number], end: number): number;
|
|
crossCheckVertical(startI: number, centerJ: number, maxCount: number, originalStateCountTotal: number): number;
|
|
crossCheckHorizontal(startJ: number, centerI: number, maxCount: number, originalStateCountTotal: number): number;
|
|
handlePossibleCenter(stateCount: [number, number, number, number, number], i: number, j: number): boolean;
|
|
selectBestPatterns(): number;
|
|
findRowSkip(): number;
|
|
haveMultiplyConfirmedCenters(): boolean;
|
|
findFinderPattern(image: Uint8Array): FinderPatternInfo;
|
|
}
|
|
|
|
declare const FORMAT_INFO_MASK_QR: 0x5412;
|
|
declare const FORMAT_INFO_DECODE_LOOKUP: [
|
|
[0x5412, 0x00], [0x5125, 0x01], [0x5E7C, 0x02], [0x5B4B, 0x03], [0x45F9, 0x04], [0x40CE, 0x05], [0x4F97, 0x06],
|
|
[0x4AA0, 0x07], [0x77C4, 0x08], [0x72F3, 0x09], [0x7DAA, 0x0A], [0x789D, 0x0B], [0x662F, 0x0C], [0x6318, 0x0D],
|
|
[0x6C41, 0x0E], [0x6976, 0x0F], [0x1689, 0x10], [0x13BE, 0x11], [0x1CE7, 0x12], [0x19D0, 0x13], [0x0762, 0x14],
|
|
[0x0255, 0x15], [0x0D0C, 0x16], [0x083B, 0x17], [0x355F, 0x18], [0x3068, 0x19], [0x3F31, 0x1A], [0x3A06, 0x1B],
|
|
[0x24B4, 0x1C], [0x2183, 0x1D], [0x2EDA, 0x1E], [0x2BED, 0x1F]
|
|
];
|
|
declare const BITS_SET_IN_HALF_BYTE: [0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4];
|
|
|
|
declare class FormatInformation {
|
|
static numBitsDiffering(a: number, b: [number, number]): number;
|
|
static decodeFormatInformation(maskedFormatInfo: number): FormatInformation;
|
|
private static doDecodeFormatInformation(maskedFormatInfo: number): FormatInformation;
|
|
|
|
private errorCorrectionLevel: ErrorCorrectionLevel;
|
|
private dataMask: number;
|
|
|
|
readonly ErrorCorrectionLevel: ErrorCorrectionLevel;
|
|
readonly DataMask: number;
|
|
|
|
GetHashCode(): number;
|
|
Equals(other: FormatInformation): boolean;
|
|
}
|
|
|
|
declare class GF256 {
|
|
static readonly QR_CODE_FIELD: GF256;
|
|
static readonly DATA_MATRIX_FIELD: GF256;
|
|
|
|
private zero: GF256Poly;
|
|
private one: GF256Poly;
|
|
|
|
expTable: number[];
|
|
logTable: number[];
|
|
readonly Zero: GF256Poly;
|
|
readonly One: GF256Poly;
|
|
|
|
static addOrSubtract(a: number, b: number): number;
|
|
|
|
constructor(primitive: number);
|
|
|
|
buildMonomial(degree: number, coefficient: number): GF256Poly;
|
|
exp(a: number): number;
|
|
log(a: number): number;
|
|
inverse(a: number): number;
|
|
multiply(a: number, b: number): number;
|
|
}
|
|
|
|
declare class GF256Poly {
|
|
field: GF256;
|
|
private coefficients: number[];
|
|
|
|
readonly Zero: boolean;
|
|
readonly Degree: number;
|
|
readonly Coefficients: number[];
|
|
|
|
constructor(field: GF256, coefficients: number[]);
|
|
|
|
getCoefficient(degree: number): number;
|
|
evaluateAt(a: number): number;
|
|
addOrSubtract(other: GF256Poly): GF256Poly;
|
|
multiply1(other: GF256Poly): GF256Poly;
|
|
multiply2(scalar: number): GF256Poly;
|
|
multiplyByMonomial(degree: number, coefficient: number): GF256Poly;
|
|
divide(other: GF256Poly): [GF256Poly, GF256Poly];
|
|
}
|
|
|
|
declare const GridSampler: {
|
|
checkAndNudgePoints(image: Uint8Array, points: number[]): void;
|
|
sampleGrid3(image: Uint8Array, dimension: number, transform: PerspectiveTransform): BitMatrix;
|
|
sampleGridx(
|
|
image: Uint8Array, dimension: number, p1ToX: number,
|
|
p1ToY: number, p2ToX: number, p2ToY: number, p3ToX: number,
|
|
p3ToY: number, p4ToX: number, p4ToY: number, p1FromX: number,
|
|
p1FromY: number, p2FromX: number, p2FromY: number, p3FromX: number,
|
|
p3FromY: number, p4FromX: number, p4FromY: number
|
|
): BitMatrix;
|
|
};
|
|
|
|
declare class ReedSolomonDecoder {
|
|
field: GF256;
|
|
|
|
constructor(field: GF256);
|
|
|
|
decode(received: GF256, twoS: number[]): void;
|
|
runEuclideanAlgorithm(a: GF256Poly, b: GF256Poly, R: number): [GF256Poly, GF256Poly];
|
|
findErrorLocations(errorLocator: GF256Poly): number[];
|
|
findErrorMagnitudes(errorEvaluator: GF256Poly, errorLocations: number[], dataMatrix: boolean): number[];
|
|
}
|
|
declare function buildVersions(): Version[];
|
|
|
|
declare class ECB {
|
|
private count: number;
|
|
private dataCodewords: number;
|
|
|
|
readonly Count: number;
|
|
readonly DataCodewords: number;
|
|
|
|
constructor(count: number, dataCodewords: number);
|
|
}
|
|
|
|
declare class ECBlocks {
|
|
private ecCodewordsPerBlock: number;
|
|
private ecBlocks: [ECB] | [ECB, ECB];
|
|
|
|
readonly ECCodewordsPerBlock: number;
|
|
readonly TotalECCodewords: number;
|
|
readonly NumBlocks: number;
|
|
|
|
constructor(ecCodewordsPerBlock: number, ecBlocks1: ECB, ecBlocks2?: ECB);
|
|
|
|
getECBlocks(): [ECB] | [ECB, ECB];
|
|
}
|
|
|
|
declare class Version {
|
|
static readonly VERSION_DECODE_INFO: [
|
|
0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6, 0x0C762, 0x0D847, 0x0E60D, 0x0F928,
|
|
0x10B78, 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683, 0x168C9, 0x177EC, 0x18EC4,
|
|
0x191E1, 0x1AFAB, 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250, 0x209D5, 0x216F0,
|
|
0x228BA, 0x2379F, 0x24B0B, 0x2542E, 0x26A64, 0x27541, 0x28C69
|
|
];
|
|
static readonly VERSIONS: Version[];
|
|
|
|
static getVersionForNumber(versionNumber: number): Version;
|
|
static getProvisionalVersionForDimension(dimension: number): Version;
|
|
static decodeVersionInformation(versionBits: number): Version;
|
|
|
|
versionNumber: number;
|
|
alignmentPatternCenters: number[];
|
|
ecBlocks: ECBlocks[];
|
|
|
|
readonly VersionNumber: number;
|
|
readonly AlignmentPatternCenters: number[];
|
|
readonly TotalCodewords: number;
|
|
readonly DimensionForVersion: number;
|
|
|
|
constructor(versionNumber: number, alignmentPatternCenters: number[],
|
|
ecBlocks1: ECBlocks, ecBlocks2: ECBlocks,
|
|
ecBlocks3: ECBlocks, ecBlocks4: ECBlocks);
|
|
|
|
buildFunctionPattern(): BitMatrix;
|
|
|
|
getECBlocksForLevel(ecLevel: ErrorCorrectionLevel): ECBlocks;
|
|
}
|
|
|
|
declare const qrcode: {
|
|
imagedata: ImageData,
|
|
width: number,
|
|
height: number,
|
|
qrCodeSymbol: any,
|
|
debug: boolean,
|
|
maxImgSize: number,
|
|
readonly sizeOfDataLengthInfo: [[10, 9, 8, 8], [12, 11, 16, 10], [14, 13, 16, 12]],
|
|
|
|
// tslint:disable-next-line:prefer-method-signature
|
|
callback: (result: string) => void,
|
|
|
|
orderBestPatterns(patterns: AlignmentPattern[]): void,
|
|
|
|
vidError(error?: any): void,
|
|
captureToCanvas(): void,
|
|
setWebcam(videoId: string): void,
|
|
decode(src?: string): void,
|
|
isUrl(s: string): boolean,
|
|
decode_url(s: string): string,
|
|
decode_utf8(s: string): string,
|
|
process(ctx: CanvasRenderingContext2D): string,
|
|
getPixel(x: number, y: number): number,
|
|
binarize(th: number): boolean[],
|
|
getMiddleBrightnessPerArea(image: number[]): number[][],
|
|
grayScaleToBitmap(grayScale: number[]): Uint8Array,
|
|
grayscale(): Uint8Array
|
|
};
|