import { EventEmitter } from 'node:events';
import type { LogEntry } from '../../commands/types';
import type { AppiumLogger } from '@appium/types';
export interface IOSLogOptions {
    maxBufferSize?: number;
    log?: AppiumLogger;
}
export declare abstract class IOSLog<TRawEntry, TSerializedEntry extends object> extends EventEmitter {
    private maxBufferSize;
    private logs;
    private _log;
    constructor(opts?: IOSLogOptions);
    get log(): AppiumLogger;
    abstract get isCapturing(): boolean;
    getLogs(): Promise<LogEntry[]>;
    protected _clearEntries(): void;
    protected broadcast(entry: TRawEntry): void;
    abstract startCapture(): Promise<void>;
    abstract stopCapture(): Promise<void>;
    protected abstract _serializeEntry(value: TRawEntry): TSerializedEntry;
    protected abstract _deserializeEntry(value: TSerializedEntry): LogEntry;
}
export default IOSLog;
//# sourceMappingURL=ios-log.d.ts.map