import { ReportStoreService } from '../../../../services/reportStoreService.js';
import { ReportDataStore } from '../../../../data/reportDataStore.js';
import { StoredReportData, RequestedReport, RecentlyViewedReport } from '../../../../types/UserReports.js';
import { ReportStoreConfig } from '../../../../types/ReportStore.js';

declare class RecentlyViewedStoreService extends ReportStoreService {
    constructor(userDataStore: ReportDataStore);
    getAllReports(userId: string): Promise<StoredReportData[]>;
    getReportByExecutionId(id: string, userId: string): Promise<StoredReportData | undefined>;
    getReportByTableId(id: string, userId: string): Promise<StoredReportData | undefined>;
    setRecentlyViewed(reportData: RequestedReport, userId: string): Promise<void>;
    addReport(reportData: RecentlyViewedReport, userId: string, userConfig: ReportStoreConfig): Promise<void>;
    setToExpired(id: string, userId: string): Promise<void>;
    setToExpiredByTableId(id: string, userId: string): Promise<void>;
    saveExpiredState(userConfig: ReportStoreConfig, index: number, userId: string): Promise<void>;
    removeReport(userId: string, reportId?: string | undefined, id?: string | undefined, tableId?: string | undefined): Promise<void>;
    removeSupersededViewedReports(removedExecutionIds: string[], userId: string): Promise<void>;
}

export { RecentlyViewedStoreService, RecentlyViewedStoreService as default };
