import { ICaptureOptions } from './interfaces/ICaptureOptions';
import { PipeClientSocket } from '../pipe/PipeClientSocket';
import EventEmitter from 'events';
import { IPcapPacketInfo } from '../pcap/interfaces/IPcapPacketInfo';
export declare class Capture extends EventEmitter {
    #private;
    get filter(): string;
    get temporaryFilename(): string;
    get count(): number;
    /**
     * Constructor
     * @param options
     */
    constructor(options: ICaptureOptions);
    /**
     * Create and initialize capture worker
     * @protected
     */
    protected createCaptureWorker(): void;
    /**
     * Destroy capture worker
     * @protected
     */
    protected destroyCaptureWorker(): Promise<void>;
    /**
     * Get worker socket
     * @protected
     */
    protected getWorkerSocket(): Promise<PipeClientSocket>;
    /**
     * Clean resources before start capture
     * @param removeTmpFile
     * @protected
     */
    protected cleanResources(removeTmpFile?: boolean): Promise<void>;
    /**
     * Clean temporary pcap file
     * @protected
     */
    protected cleanTemporaryFile(): void;
    /**
     * Wait other operation done
     * @protected
     */
    protected waitOperationDone(): Promise<void>;
    /**
     * Start capture packets
     */
    start(): Promise<void>;
    /**
     * Stop capture packets
     */
    stop(): Promise<void>;
    /**
     * Pause capture packets
     */
    pause(): Promise<void>;
    /**
     * Resume capture packets
     */
    resume(): Promise<void>;
    /**
     * Set capture filter
     * @param filter
     */
    setFilter(filter: string): Promise<void>;
    /**
     * Save captured pcap to destination
     * @param destination
     */
    saveTo(destination: string): Promise<void>;
    /**
     * Dispose capture
     */
    dispose(): Promise<void>;
    on(eventName: 'packet', listener: (pcapPacketInfo: IPcapPacketInfo) => void): this;
    on(eventName: 'rawPacket', listener: (index: number, packet: string, seconds: number, microseconds: number) => void): this;
    once(eventName: 'packet', listener: (pcapPacketInfo: IPcapPacketInfo) => void): this;
    once(eventName: 'rawPacket', listener: (index: number, packet: string, seconds: number, microseconds: number) => void): this;
}
//# sourceMappingURL=Capture.d.ts.map