import type { AppiumLogger } from '@appium/types';
import type { EventEmitter } from 'node:events';
/**
 * Active DVT NetworkMonitor session: streams instrument events to the driver BiDi event bus.
 */
export declare class NetworkMonitorSession {
    private readonly log;
    private readonly udid;
    private dvt;
    private runPromise;
    private stopped;
    /**
     * @param log - Logger for this session (typically the driver logger).
     * @param udid - Target device UDID for `startDVTService`.
     */
    constructor(log: AppiumLogger, udid: string);
    /**
     * @returns `true` only while the consume loop may still be receiving events (`this.dvt` is set).
     * After normal completion, error, or {@link interrupt}, this becomes `false`.
     */
    isRunning(): boolean;
    /**
     * Opens `startDVTService` and begins iterating `networkMonitor.events()`, emitting each payload on `eventEmitter`
     * using `BIDI_EVENT_NAME` and `makeNetworkMonitorEvent` (BiDi `appium:xcuitest.networkMonitor`).
     *
     * @param eventEmitter - Typically the session driver's `eventEmitter` (WebDriver BiDi bus).
     */
    start(eventEmitter: EventEmitter): Promise<void>;
    /**
     * Stops monitoring and waits for the consume loop to finish. DVT is closed in
     * {@link consumeEvents} after the network monitor iterator exits (same pattern as
     * condition inducer `disable()` → `close()`).
     */
    interrupt(): Promise<void>;
    private consumeEvents;
    private closeDvt;
}
//# sourceMappingURL=network-monitor-session.d.ts.map