import { Request, Response } from 'express';
import type { components } from '../../types/api';
import type { FilterValue } from './types';
import { RenderFiltersReturnValue } from '../_async/async-filters-form/types';
/**
 * Given a FilterValue[], will update the values to match the req.query values if present
 *
 * @param {FilterValue[]} filters
 * @param {Request} req
 * @param {string} [prefix='filters.']
 * @return {*}  {FilterValue[]}
 */
export declare const setFilterValuesFromRequest: (filters: FilterValue[], req: Request, prefix?: string) => FilterValue[];
export declare const getFiltersFromDefinition: (fields: components["schemas"]["FieldDefinition"][], interactive?: boolean) => FilterValue[];
/**
 * Initialises the sortData from the definition
 */
export declare const getSortByFromDefinition: (fields: components["schemas"]["FieldDefinition"][]) => FilterValue[];
/**
 * Gets the filters for an interactive report
 *
 * @param {{
 *   fields: components['schemas']['FieldDefinition'][]
 *   req: Request
 * }} {
 *   fields,
 *   req,
 * }
 * @return {*}
 */
export declare const getInteractiveFilters: ({ fields, req, }: {
    fields: components["schemas"]["FieldDefinition"][];
    req: Request;
}) => Promise<FilterValue[]>;
/**
 * Gets the filters for pre-request
 *
 * @param {Request} req
 * @param {Response} res
 * @param {components['schemas']['FieldDefinition'][]} fields
 * @return {*}  {(Promise<RenderFiltersReturnValue | undefined>)}
 */
export declare const getRequestFilters: (req: Request, res: Response, fields: components["schemas"]["FieldDefinition"][]) => Promise<RenderFiltersReturnValue | undefined>;
declare const _default: {
    getFiltersFromDefinition: (fields: components["schemas"]["FieldDefinition"][], interactive?: boolean) => FilterValue[];
    setFilterValuesFromRequest: (filters: FilterValue[], req: Request, prefix?: string) => FilterValue[];
    getInteractiveFilters: ({ fields, req, }: {
        fields: components["schemas"]["FieldDefinition"][];
        req: Request;
    }) => Promise<FilterValue[]>;
};
export default _default;
