import { Platform } from '@ionic/angular';
import { EncryptionOptions } from '@iotize/tap/auth';
import { Observable } from 'rxjs';
import { NFC, NdefEvent, NdefTag } from '../../nfc';
import { 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;
    private platform;
    private _tagDiscoveredListener;
    readonly tagDiscoveredEvents: Observable<TagDiscoveredEvent>;
    private readonly _ndefDiscoveredListener;
    readonly ndefDiscoveredEvents: Observable<NdefEvent>;
    private _tapDeviceDiscoveredEvent;
    readonly tapDeviceDiscoveredEvent: Observable<RecoverableTapStateEvent>;
    private _setupTapDeviceDiscoveredListenerPromise?;
    private _setupTagDiscoveredListenerPromise?;
    constructor(nfc: NFC, platform: Platform);
    write(data: any[]): Promise<void>;
    transceive(data: Uint8Array): Promise<Uint8Array>;
    isEnabled(): Promise<boolean>;
    setupTagDiscoveredListenerOnce(): Promise<void>;
    setupTapDeviceDiscoveredListener(): Promise<void>;
    setupTagDiscoveredListener(): Promise<void>;
    setupNdefListener(): Promise<void>;
    closeNFC(): Promise<void>;
    /**
     * iOS specific commands
     */
    beginSessionFromTech(tech: string, alertMessage?: string): Promise<void>;
    closeSession(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NfcService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NfcService>;
}
