decode(image, hints = null) {
			let decoderResult;
			let points;
			if (hints != null && hints.has(DecodeHintType$1.PURE_BARCODE)) {
				const bits = DataMatrixReader.extractPureBits(image.getBlackMatrix());
				decoderResult = this.decoder.decode(bits);
				points = DataMatrixReader.NO_POINTS;
			}
			else {
				const detectorResult = new Detector$1(image.getBlackMatrix()).detect();
				decoderResult = this.decoder.decode(detectorResult.getBits());
				points = detectorResult.getPoints();
			}
			const rawBytes = decoderResult.getRawBytes();
			const result = new Result(decoderResult.getText(), rawBytes, 8 * rawBytes.length, points, BarcodeFormat$1.DATA_MATRIX, System.currentTimeMillis());
			const byteSegments = decoderResult.getByteSegments();
			if (byteSegments != null) {
				result.putMetadata(ResultMetadataType$1.BYTE_SEGMENTS, byteSegments);
			}
			const ecLevel = decoderResult.getECLevel();
			if (ecLevel != null) {
				result.putMetadata(ResultMetadataType$1.ERROR_CORRECTION_LEVEL, ecLevel);
			}
			return result;
		}
Locates and decodes a Data Matrix code in an image.

@return a String representing the content encoded by the Data Matrix code
@throws NotFoundException if a Data Matrix code cannot be found
@throws FormatException if a Data Matrix code cannot be decoded
@throws ChecksumException if error correction fails