import type { LoopKitConfig, ISessionManager } from '../types/index.js';
import type { Logger } from '../utils/Logger.js';
import type { IdGenerator } from '../utils/IdGenerator.js';
import type { StorageManager } from './StorageManager.js';
type SessionEventCallback = (eventName: string, properties: Record<string, any>) => void;
/**
 * Session manager for handling user sessions and anonymous IDs
 */
export declare class SessionManager implements ISessionManager {
    private config;
    private logger;
    private idGenerator;
    private storageManager;
    private sessionEventCallback?;
    private sessionId;
    private anonymousId;
    private lastActivityTime;
    private sessionStartTime;
    constructor(config: LoopKitConfig, logger: Logger, idGenerator: IdGenerator, storageManager: StorageManager);
    /**
     * Set callback for session events
     */
    setSessionEventCallback(callback: SessionEventCallback): void;
    /**
     * Get current session ID
     */
    getSessionId(): string;
    /**
     * Get anonymous ID
     */
    getAnonymousId(): string;
    /**
     * Start new session
     */
    startSession(): void;
    /**
     * End current session
     */
    endSession(): void;
    /**
     * Check if session is active
     */
    isSessionActive(): boolean;
    /**
     * Update activity timestamp
     */
    updateActivity(): void;
    /**
     * Update configuration
     */
    updateConfig(config: LoopKitConfig): void;
    /**
     * Reset session state
     */
    reset(): void;
    /**
     * Load existing anonymous ID or create new one
     */
    private loadOrCreateAnonymousId;
}
export {};
//# sourceMappingURL=SessionManager.d.ts.map