import type { LoopKitConfig, TrackOptions } from '../types/index.js';
import type { Logger } from '../utils/Logger.js';
import type { QueueManager } from './QueueManager.js';
import type { SessionManager } from './SessionManager.js';
import type { IdGenerator } from '../utils/IdGenerator.js';
/**
 * Event tracker for handling all event types
 */
export declare class EventTracker {
    private config;
    private logger;
    private queueManager;
    private sessionManager;
    private idGenerator;
    constructor(config: LoopKitConfig, logger: Logger, queueManager: QueueManager, sessionManager: SessionManager, idGenerator: IdGenerator);
    /**
     * Track an event
     */
    track(eventName: string, properties?: Record<string, any>, options?: TrackOptions, context?: any): void;
    /**
     * Identify a user
     */
    identify(userId: string, properties?: Record<string, any>): void;
    /**
     * Associate user with a group
     */
    group(groupId: string, properties?: Record<string, any>, groupType?: string, context?: any): void;
    /**
     * Update configuration
     */
    updateConfig(config: LoopKitConfig): void;
    /**
     * Create base event structure
     */
    private createBaseEvent;
    /**
     * Create system information
     */
    private createSystemInfo;
}
//# sourceMappingURL=EventTracker.d.ts.map