import { DataResponseModel } from '../../../interfaces/mexican-id/data-response.model'; import { ResponseErrorModel } from '../../../interfaces/mexican-id/response-error.model'; import { PerspectiveService } from '../../../services/mexican-id/perspective.service'; import { IdCaptureConfigurationModel } from '../../../interfaces/mexican-id/id-capture-configuration.model'; import { OnInit, EventEmitter, OnDestroy } from '@angular/core'; import '@tensorflow/tfjs-backend-cpu'; import * as i0 from "@angular/core"; /** * Componente que implementa módelo tensorflow para detectar identificación */ export declare class ScannerGuidesComponent implements OnInit, OnDestroy { private _perspective; configuration?: IdCaptureConfigurationModel; private tflite; /** * Etiqueta a mostrar para captura * @type {string} * @public */ stepTitle: string; /** * Etiqueta de instrucciones adicionales a mostrar para captura * @type {string} * @public */ stepSubtitle: string; /** * Mensaje de carga * @type {string} * @public */ startingMessage: string; /** * Bandera para contro de anverso o reverso * @type {boolean} * @public */ isFront: boolean; /** * Bandera para controlar animación de giro de id * @type {boolean} * @public */ flipImage: boolean; /** * Bandera para indicar que el modelo ya esta cargado * @type {boolean} * @public */ modelReady: boolean; /** * Bandera para indicar que el componente se encuentra listo para escanear * @type {boolean} * @public */ scannerReady: boolean; /** * Imagen que se usa para vista previa de miniatura en modo debug * @type {string} * @public */ imageBase64: string; /** * Imagen que se usa para vista previa de miniatura en modo debug * @type {string} * @public */ showManualCapture: boolean; /** * Indica tipo de dispositivo, si es iOS, Android o Desktop * @type {string} * @public */ deviceType: 'iOS' | 'Android' | 'Desktop'; /** * Arreglo de documentos escaneados, respuesta exitosa del componente * @type {DataResponseModel[]} * @private */ private _responseToEmit; /** * Bandera para pausar escaneo, se utiliza al procesar imagenes * @type {boolean} * @private */ private _stopPoints; /** * Almacena el modelo que vamos a usar * @type {tflite.ObjectDetector} * @private */ private _tsLiteModel; /** * Almacena el elemento del video que captura el dispositivo * @type {HTMLVideoElement} * @private */ private _video; /** * Almacena el espacio superior que usa el video en relación con la pantalla del dispositivo * @type {number} * @private */ private _topVideoSpace; /** * Almacena el espacio izquierdo que usa el video en relación con la pantalla del dispositivo * @type {number} * @private */ private _leftVideoSpace; /** * Almacena resultado de analisis de documento * @type {DataResponseModel[]} * @private */ private _finalResult; /** * Almacena la configuración del video capturado para analizar * @type {any} * @private */ private _constraints; /** * Ancho del video * @type {number} * @private */ private _videoWidth; /** * Alto del video * @type {number} * @private */ private _videoHeight; /** * Escala de en relación a resolución del video y tamaño de la pantalla del dispositivo * @type {any} * @private */ private _scale; /** * Almacena las guias de captura que se muestran en pantalla al detectar con el modelo * @type {any} * @private */ private _guides; /** * Almacena el stream del video en curso * @type {any} * @private */ private _stream; /** * Timer para realizar escaneo constante de la captura del dispositivo * @type {any} * @private */ private _timerId; /** * Almacena la parte del canvas que detecto la imagen, para solo tener el recorte * @type {any} * @private */ private _detection; /** * Timer para conteo regresivo cuando se detecta el modelo en el stream * @type {number} * @private */ private _timeRemaining; /** * Respuesta parcial del escaneo y analisis del modelo, puntos detectados * @type {any} * @private */ private _scannerResponse; /** * Almacena elemento detectado por modelo para analisis posterior del mismo * @type {DataResponseModel} * @private */ private _validObjectDetected; cropper: boolean; imageCropBase64: string; private _cameraSessionId; /** * Porcentaje de coincidencia aceptado en base al modelo consifugrado * @type {number} * @private */ acceptedProbability: number; frontTitle?: string; backTitle?: string; tfModelName?: string; imageExtensionResult: string; debugMode: boolean; twoSides: boolean; forceCrop: boolean; deviceId: string | undefined | null; tfWasmPath?: string; secondsForManualCapture?: number; forceSideValidation?: boolean; camera: EventEmitter; result: EventEmitter; error: EventEmitter; close: EventEmitter; constructor(_perspective: PerspectiveService); ngOnInit(): Promise; ngOnDestroy(): void; /** * Se ejecuta cuando carga elemento de video en dom, para comenzar funcionalidad del componente */ loadVideo(): void; /** * Muestra clasificación del documento en pantalla | solo en debug mode * @return {string} clasificación */ getClassification(): string | undefined; private _onVisibilityChange; private _loadTsModel; private _retry; private _delay; private _cameraLog; private _serializeMediaError; private _emitCameraError; private _getUsableCurrentStream; private _pickBestAndroidDeviceId; private _openInitialCameraStream; private _openAndroidFallback; private _applyCompatibleFocusMode; private _startComponent; private detectDeviceType; private _videoCreation; private _setAndroidDeviceConfiguration; private _setIosDeviceConfiguration; private _setIosRearCamera; private _videoRefresh; private _loadMinifiedModel; private getBaseHref; private _predictModel; private _getScale; private _getVideoSize; private _drawGuides; private _getPercentage; private _getPointsWithoutBackOffset; private isIpad; private _setStepTitle; private forcedDocumentInvalid; private _manualCaptureValidation; private _startCountDown; private _stopCountDown; private _updateCountDown; private _detectObjects; private _getFinalImagePoints; private _distanceBetweenTwoPoints; private _drawPrediction; private _drawCanvasPrediction; showCropper(): void; getCropperImage($event: any): void; private _savePartialScannerResponse; private _getScannerResponse; private _perspectiveCorrection; private _faceCut; private _motionBlurred; private _cameraOff; private _isIOS; private _showCameraPermissionsGuide; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }