import LDContextDeduplicator from '../../api/subsystem/LDContextDeduplicator';
import LDEventProcessor from '../../api/subsystem/LDEventProcessor';
import { ClientContext } from '../../options';
import { LDHeaders } from '../../utils';
import { DiagnosticsManager } from '../diagnostics';
import InputEvent from './InputEvent';
export interface EventProcessorOptions {
    allAttributesPrivate: boolean;
    privateAttributes: string[];
    eventsCapacity: number;
    flushInterval: number;
    diagnosticRecordingInterval: number;
    redactAnonymousAllEvents?: boolean;
}
export default class EventProcessor implements LDEventProcessor {
    private readonly _config;
    private readonly _contextDeduplicator?;
    private readonly _diagnosticsManager?;
    private _eventSender;
    private _summarizer;
    private _queue;
    private _lastKnownPastTime;
    private _droppedEvents;
    private _deduplicatedUsers;
    private _exceededCapacity;
    private _eventsInLastBatch;
    private _shutdown;
    private _capacity;
    private _logger?;
    private _contextFilter;
    private _diagnosticsTimer;
    private _flushTimer;
    private _flushUsersTimer;
    constructor(_config: EventProcessorOptions, clientContext: ClientContext, baseHeaders: LDHeaders, _contextDeduplicator?: LDContextDeduplicator | undefined, _diagnosticsManager?: DiagnosticsManager | undefined, start?: boolean, summariesPerContext?: boolean);
    start(): void;
    private _postDiagnosticEvent;
    close(): void;
    flush(): Promise<void>;
    sendEvent(inputEvent: InputEvent): void;
    private _makeOutputEvent;
    private _enqueue;
    private _shouldDebugEvent;
    private _tryPostingEvents;
}
//# sourceMappingURL=EventProcessor.d.ts.map