import { Response, Request, NextFunction, Router } from 'express';
import { Services } from './Services';
import UserDataStore, { RedisClient } from '../data/reportDataStore';
export interface EmbeddedReportUtilsParams {
    req?: Request;
    res: Response;
    next?: NextFunction;
    services: Services;
    options?: EmbeddedReportOptions;
    features: EmbeddedReportFeatures;
}
export interface EmbeddedSyncParams {
    router: Router;
    config?: EmbeddedSyncParamsConfig;
    services?: Services;
    options?: EmbeddedReportOptions;
    features?: EmbeddedReportFeatures;
}
export interface EmbeddedSyncParamsConfig {
    layoutPath?: string;
    templatePath?: string;
    reportingClientArgs?: ReportingClientArgs;
}
export interface EmbeddedReportOptions {
    dpdPath?: string;
}
export interface EmbeddedReportFeatures {
    config: EmbeddedReportFeaturesConfig;
    list: EmbeddedReportFeaturesList[];
}
export interface EmbeddedReportFeaturesConfig {
    userId?: string;
    redisClient?: RedisClient;
    userDataStore?: UserDataStore;
}
interface ReportingClientArgs {
    url: string;
    agent: {
        timeout: number;
    };
}
export declare enum EmbeddedReportFeaturesList {
    download = "download",
    bookmark = "bookmark",
    recentlyViewed = "recentlyViewed"
}
export interface InitialisedFeatures {
    download?: boolean;
    bookmark?: boolean;
    recentlyViewed?: boolean;
}
export {};
