decode(image, hints = null) {
			let exception = null;
			let detector = new Detector(image.getBlackMatrix());
			let points = null;
			let decoderResult = null;
			try {
				let detectorResult = detector.detectMirror(false);
				points = detectorResult.getPoints();
				this.reportFoundResultPoints(hints, points);
				decoderResult = new Decoder().decode(detectorResult);
			}
			catch (e) {
				exception = e;
			}
			if (decoderResult == null) {
				try {
					let detectorResult = detector.detectMirror(true);
					points = detectorResult.getPoints();
					this.reportFoundResultPoints(hints, points);
					decoderResult = new Decoder().decode(detectorResult);
				}
				catch (e) {
					if (exception != null) {
						throw exception;
					}
					throw e;
				}
			}
			let result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), decoderResult.getNumBits(), points, BarcodeFormat$1.AZTEC, System.currentTimeMillis());
			let byteSegments = decoderResult.getByteSegments();
			if (byteSegments != null) {
				result.putMetadata(ResultMetadataType$1.BYTE_SEGMENTS, byteSegments);
			}
			let 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