import type Database from 'better-sqlite3';
import type { AnalysisResultSceneType, AnalysisResultWindowState } from '../types/multiTraceComparison';
import type { EnterpriseRepositoryScope } from './enterpriseRepository';
type JsonValue = string | number | boolean | null | JsonValue[] | {
    [key: string]: JsonValue;
};
export interface AnalysisResultWindowHeartbeatInput {
    windowId: string;
    userId?: string;
    traceId?: string;
    backendTraceId?: string;
    activeSessionId?: string;
    latestSnapshotId?: string;
    traceTitle?: string;
    sceneType?: AnalysisResultSceneType;
    metadata?: Record<string, JsonValue>;
    ttlMs?: number;
}
export interface ListActiveWindowStateOptions {
    excludeWindowId?: string;
    limit?: number;
    now?: number;
}
export interface UpsertWindowStateOptions {
    ensureScopeGraph?: boolean;
}
export declare class AnalysisResultWindowStateRepository {
    private readonly db;
    constructor(db: Database.Database);
    scopeGraphExists(scope: EnterpriseRepositoryScope): boolean;
    upsertWindowState(scope: EnterpriseRepositoryScope, input: AnalysisResultWindowHeartbeatInput, options?: UpsertWindowStateOptions): AnalysisResultWindowState;
    getWindowState(scope: EnterpriseRepositoryScope, windowId: string): AnalysisResultWindowState | null;
    listActiveWindowStates(scope: EnterpriseRepositoryScope, options?: ListActiveWindowStateOptions): AnalysisResultWindowState[];
}
export declare function createAnalysisResultWindowStateRepository(db: Database.Database): AnalysisResultWindowStateRepository;
export {};
//# sourceMappingURL=analysisResultWindowStateStore.d.ts.map