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[]>;
    getAllReportsById(id: string, userId: string): Promise<StoredReportData[]>;
    getReportById(id: string, userId: string): Promise<StoredReportData | undefined>;
    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>;
    asyncSetToExpiredByTableId(id: string, userId: string): Promise<string>;
    saveExpiredState(userConfig: ReportStoreConfig, index: number, userId: string): Promise<void>;
    removeReport(id: string, userId: string): Promise<void>;
}

export { RecentlyViewedStoreService, RecentlyViewedStoreService as default };
