import { Request, Response, NextFunction } from 'express';
import type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData';
import type { AsyncReportUtilsParams, RequestDataResult } from '../../../../types/AsyncReportUtils';
import type { SetQueryFromFiltersResult } from '../../../../components/_async/async-filters-form/types';
import type { Services } from '../../../../types/Services';
/**
 * Sends the request for the async report
 *
 * @param {AsyncReportUtilsParams} { req, res, services }
 * @return {*}
 */
export declare const request: ({ req, res, services }: AsyncReportUtilsParams) => Promise<ExecutionData>;
/**
 * Updates the store with the request details
 *
 * @param {Request} req
 * @param {Response} res
 * @param {Services} services
 * @param {SetQueryFromFiltersResult} querySummaryData
 * @param {string} executionData
 * @return {*}  {Promise<string>}
 */
export declare const updateStore: ({ req, res, services, queryData, executionData, childExecutionData, }: {
    req: Request;
    res: Response;
    services: Services;
    queryData?: SetQueryFromFiltersResult | undefined;
    executionData: ExecutionData;
    childExecutionData: Array<ChildReportExecutionData>;
}) => Promise<void>;
export declare const getFiltersFromReqBody: (req: Request) => {
    name: string;
    value: any;
}[];
/**
 * Returns the data required for rendering the async filters component
 *
 * @param {AsyncReportUtilsParams} { req, res, dataSources }
 * @return {*}
 */
export declare const renderRequest: ({ req, res, services, next, }: {
    req: Request;
    res: Response;
    next: NextFunction;
    services: Services;
}) => Promise<RequestDataResult | boolean>;
/**
 * Ensures that the request will always contain the correct qs on first render
 *
 * @param {Response} res
 * @param {Request} req
 * @return {*}
 */
export declare const redirectWithDefaults: (res: Response, req: Request) => boolean;
/**
 * Sets the defaults query string for pre-filters
 *
 * @param {Request} req
 * @return {*}
 */
export declare const setDefaultQueryString: (req: Request) => string | undefined;
declare const _default: {
    request: ({ req, res, services }: AsyncReportUtilsParams) => Promise<ExecutionData>;
    renderRequest: ({ req, res, services, next, }: {
        req: Request;
        res: Response;
        next: NextFunction;
        services: Services;
    }) => Promise<RequestDataResult | boolean>;
    getFiltersFromReqBody: (req: Request) => {
        name: string;
        value: any;
    }[];
};
export default _default;
