import { EncryptionOptions } from '@iotize/tap/auth';
import { Observable } from 'rxjs';
import { NdefEvent, NdefTag, NFC } from '../../nfc';
import { MimeTypeEvent, TagDiscoveredEvent } from './definitions';
import * as i0 from "@angular/core";
export interface RecoverableTapStateEvent {
    tag: NdefTag;
    tap: RecoverableTapState;
}
export interface RecoverableTapState {
    nfcPairingDone?: boolean;
    encryption?: EncryptionOptions;
}
export declare class NfcService {
    nfc: NFC;
    ndefEvents?: Observable<NdefEvent>;
    tagDiscoveredEvents?: Observable<TagDiscoveredEvent>;
    tapDeviceEventsObs?: Observable<RecoverableTapStateEvent>;
    mimeTypeEvents?: Observable<MimeTypeEvent>;
    error?: Error;
    private _ready;
    private _events;
    private _tapDeviceEvents;
    constructor(nfc: NFC);
    get ready(): boolean;
    isEnabled(): Promise<boolean>;
    tapDevices(): Observable<RecoverableTapStateEvent>;
    /**
     * @deprecated use events() instead
     */
    listen(): Observable<TagDiscoveredEvent>;
    /**
     * Listen to nfc tag discovered event
     */
    events(): Observable<TagDiscoveredEvent>;
    setupTapDeviceListener(): Promise<void>;
    setupTagDiscoveredListener(): Promise<void>;
    setupMimeTypeListener(mimeType: string): Promise<void>;
    setupNdefListener(): Promise<void>;
    closeNFC(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NfcService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NfcService>;
}
