import { AfterViewInit, ElementRef, EventEmitter, OnDestroy } from '@angular/core';
import { QrScannerMetadata, QrScannerState } from './types';
import * as i0 from "@angular/core";
/**
* val-qr-scanner
*
* Organism: scanner de códigos QR por cámara (`@zxing/browser` +
* `@zxing/library`). Emite el texto decodificado por `(scanned)`.
*
* Maneja: permiso de cámara denegado (`denied`), ausencia de cámara
* (`no-camera`), selector cuando hay varias cámaras, y botón start/stop. Hace
* cleanup del stream en `ngOnDestroy`. i18n auto-registrado (namespace
* `QrScanner`).
*
* Object-first (`@Input() props`) + un único `@Output() scanned`.
*
* @example
* ```html
*
* ```
*/
export declare class QrScannerComponent implements AfterViewInit, OnDestroy {
props: QrScannerMetadata;
/** Emite el texto decodificado del QR. */
scanned: EventEmitter;
videoRef: ElementRef;
private i18n;
readonly state: import("@angular/core").WritableSignal;
readonly devices: import("@angular/core").WritableSignal;
readonly activeDeviceId: import("@angular/core").WritableSignal;
private reader;
private controls;
private lastValue;
private lastAt;
private viewReady;
constructor();
ngAfterViewInit(): void;
ngOnDestroy(): void;
t(key: string): string;
stateMessage(): string;
deviceLabel(d: MediaDeviceInfo): string;
start(deviceId?: string): Promise;
stop(): void;
onSelectDevice(deviceId: string): Promise;
private handleResult;
private handleStartError;
/** Detiene el decode + libera el stream de la cámara. */
private teardown;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}