import { MonitoringController } from '@iotize/tap/data';
import { DataLogger } from '@iotize/tap/data-log';
import { Observable } from 'rxjs';
import { CurrentDeviceService } from '../../current-device.service';
import * as i0 from "@angular/core";
export declare namespace IonicDataLogger {
    interface PacketInfo<DataType = any> extends DataLogger.RawPacket {
        meta: DataLogger.RawPacket.Meta & {
            bundleName?: string;
        };
        decodedData: DataType;
    }
    interface CachePacketType {
        id: number;
        name: string;
        packets: IonicDataLogger.PacketInfo<any>[];
    }
    interface InstanceOptions {
        period: number;
    }
}
/**
 * Experimental data logger class
 *
 * @experimental
 */
export declare class IonicDataLogger {
    private service;
    controller: MonitoringController;
    /**
     * Packet per packet stream
     */
    stream: Observable<IonicDataLogger.PacketInfo>;
    /**
     * Whole data stream
     */
    private _data;
    private _data$;
    get data(): Observable<IonicDataLogger.PacketInfo[]>;
    _packetPerBundles: Record<number, IonicDataLogger.CachePacketType>;
    options: IonicDataLogger.InstanceOptions;
    constructor(service: CurrentDeviceService);
    getCacheForBundle(bundleId: number): IonicDataLogger.CachePacketType;
    set period(v: number);
    get events(): Observable<IonicDataLogger.PacketInfo<any>>;
    get running(): boolean;
    storePacket(packet: IonicDataLogger.PacketInfo<Record<string, any>>): void;
    pause(): void;
    stop(): void;
    start(): Observable<IonicDataLogger.PacketInfo<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<IonicDataLogger, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<IonicDataLogger>;
}
