import { Request, Response } from 'express';
import { components } from '../../../types/api';
import { Services } from '../../../types/Services';
import { LoadType, RequestedReport } from '../../../types/UserReports';
import { ReportData } from '../my-reports/builder';
/**
 * Apply interactive query to a REPORT
 *
 * @param {Request} req
 * @param {Response} res
 * @param {Services} services
 * @param {('columns' | 'filters')} applyType
 * @return {*}
 */
export declare const applyReportInteractiveQuery: (req: Request, res: Response, services: Services, applyType: "columns" | "filters", loadType: LoadType) => Promise<void>;
/**
 * Apply interactive query to a DASHBOARD
 *
 * @param {Request} req
 * @param {Response} res
 * @param {Services} services
 * @param {('columns' | 'filters')} applyType
 * @return {*}
 */
export declare const applyDashboardInteractiveQuery: (req: Request, res: Response, applyType: "columns" | "filters", loadType: LoadType) => Promise<void>;
/**
 * Redirects the report to use the defaults
 *
 * @param {Response} res
 * @param {Request} req
 * @return {*}
 */
export declare const redirectWithDefaults: (res: Response, req: Request) => boolean;
/**
 * Updates the report state to expired and redirects
 *
 * @param {Request} req
 * @param {Response} res
 * @param {Services} services
 */
export declare const updateStateToExpiredAndRedirect: (req: Request, res: Response, services: Services) => Promise<void>;
/**
 * Updates the state for a viewed ASYNC report
 *
 * @param {Request} req
 * @param {Response} res
 * @param {Services} services
 * @param {RequestedReport} reportStateData
 * @param {string} userId
 * @param {components['schemas']['FieldDefinition'][]} fields
 */
export declare const updateLastViewedAsync: (req: Request, res: Response, services: Services, reportStateData: RequestedReport, userId: string, fields: components["schemas"]["FieldDefinition"][]) => Promise<void>;
/**
 * Updates the last viewed state for a sync report
 *
 * @param {Request} req
 * @param {Services} services
 * @param {*} stateData
 * @param {string} userId
 * @param {components['schemas']['FieldDefinition'][]} fields
 */
export declare const updateLastViewedSync: (req: Request, res: Response, services: Services, reportData: ReportData, userId: string, fields: components["schemas"]["FieldDefinition"][]) => Promise<void>;
declare const _default: {
    applyDashboardInteractiveQuery: (req: Request, res: Response, applyType: "columns" | "filters", loadType: LoadType) => Promise<void>;
    applyReportInteractiveQuery: (req: Request, res: Response, services: Services, applyType: "columns" | "filters", loadType: LoadType) => Promise<void>;
    resetFilters: (req: Request, res: Response, sessionKey: {
        id: string;
        reportId: string;
        tableId?: string;
    }) => void;
    resetFiltersQueryString: (req: Request, sessionKey: {
        id: string;
        reportId: string;
        tableId?: string;
    }) => string;
    resetColumnsQueryString: (req: Request, sessionKey: {
        id: string;
        reportId: string;
        tableId?: string;
    }) => string;
    redirectWithDefaults: (res: Response, req: Request) => boolean;
};
export default _default;
