import { Request, Response } from 'express';
import { RequestedReport, RequestStatus } from '../types/UserReports';
import { Services } from '../types/Services';
export interface GetStatusUtilsResponse {
    status: RequestStatus;
    errorMessage?: {
        userMessage?: string;
        developerMessage?: string;
    };
    reportData?: RequestedReport | undefined;
}
export declare const getStatus: ({ req, res, services, }: {
    req: Request;
    res: Response;
    services: Services;
}) => Promise<GetStatusUtilsResponse>;
/**
 * Gets the expired status of a viewed report
 * - if reports status was READY/FINISHED
 * - And the new Status is an error status
 * - it means the report has expired
 *
 * @param {AsyncReportUtilsParams} { req, res, services }
 * @return {*}
 */
export declare const getExpiredStatus: ({ req, res, services }: {
    req: Request;
    res: Response;
    services: Services;
}) => Promise<{
    isExpired: boolean;
    executionId: any;
}>;
export declare const shouldTimeoutRequest: ({ requestedAt, compareTime, durationMins, }: {
    requestedAt: Date;
    compareTime: Date;
    durationMins: number;
}) => boolean;
declare const _default: {
    getStatus: ({ req, res, services, }: {
        req: Request;
        res: Response;
        services: Services;
    }) => Promise<GetStatusUtilsResponse>;
    getExpiredStatus: ({ req, res, services }: {
        req: Request;
        res: Response;
        services: Services;
    }) => Promise<{
        isExpired: boolean;
        executionId: any;
    }>;
    shouldTimeoutRequest: ({ requestedAt, compareTime, durationMins, }: {
        requestedAt: Date;
        compareTime: Date;
        durationMins: number;
    }) => boolean;
};
export default _default;
