import type { EnhancedIndex } from '../types/IndexTypes.js';
export interface TriggerMetricsTrackerOptions {
    batchSize: number;
    flushIntervalMs: number;
    cacheLimits: {
        maxSize: number;
        maxMemoryMB: number;
    };
    getIndex: () => Promise<EnhancedIndex>;
    persistIndex: (index: EnhancedIndex) => Promise<void>;
}
export declare class TriggerMetricsTracker {
    private readonly options;
    private metricsBatch;
    private flushTimer;
    private logListener?;
    addLogListener(fn: (level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: Record<string, unknown>) => void): void;
    constructor(options: TriggerMetricsTrackerOptions);
    track(trigger: string, immediate?: boolean): Promise<void>;
    flush(): Promise<void>;
    dispose(): void;
    get pendingCount(): number;
}
//# sourceMappingURL=TriggerMetricsTracker.d.ts.map