import { DownloadPermissionService } from '../routes/journeys/download-report/request-download/service.js';
import { BookmarkService } from '../routes/journeys/my-reports/bookmarks/service.js';
import { RequestedReportService } from '../routes/journeys/my-reports/requested-reports/service.js';
import { RecentlyViewedStoreService } from '../routes/journeys/my-reports/recently-viewed/service.js';
import { DefaultFilterValuesService } from '../services/defaultFilterValuesService.js';
import { ReportDataStore } from '../data/reportDataStore.js';
import { ReportingService } from '../services/reportingService.js';
import { DashboardService } from '../services/dashboardService.js';
import { ReportingClient } from '../data/reportingClient.js';
import { DashboardClient } from '../data/dashboardClient.js';
import { MissingReportClient } from '../data/missingReportClient.js';
import { ProductCollectionClient } from '../data/productCollectionClient.js';
import { Services } from '../types/Services.d.js';
import { MissingReportService } from '../services/missingReport/missingReportService.js';
import { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService.js';
import { ProductCollectionService } from '../services/productCollection/productCollectionService.js';
import { ServiceFeatureConfig } from '../types/DprConfig.js';
import { FeatureFlagService } from '../services/featureFlagService.js';
import SubscriptionStoreService from '../routes/journeys/my-reports/subscriptions/service.js';
import { ReportIdMigrationService } from '../services/reportIdMigrationService.js';
import SubscriptionService from '../services/subscriptionService.js';

interface InitDPRServicesArgs {
    reportingClient: ReportingClient;
    dashboardClient: DashboardClient;
    reportDataStore: ReportDataStore;
    missingReportClient: MissingReportClient;
    productCollectionClient: ProductCollectionClient;
    featureFlagService: FeatureFlagService;
    reportIdMigrationService: ReportIdMigrationService;
}
interface dprServices {
    reportingService: ReportingService;
    dashboardService: DashboardService;
    productCollectionService: ProductCollectionService;
    requestedReportService: RequestedReportService;
    missingReportService: MissingReportService;
    recentlyViewedService: RecentlyViewedStoreService;
    bookmarkService: BookmarkService;
    subscriptionService: SubscriptionService;
    subscriptionStoreService: SubscriptionStoreService;
    downloadPermissionService: DownloadPermissionService;
    defaultFilterValuesService: DefaultFilterValuesService;
    productCollectionStoreService: ProductCollectionStoreService;
    featureFlagService: FeatureFlagService;
    reportIdMigrationService: ReportIdMigrationService;
}
declare const createDprServices: (clients: InitDPRServicesArgs, serviceFeatureConfig?: ServiceFeatureConfig) => Services;

export { createDprServices };
export type { InitDPRServicesArgs, dprServices };
