import { Request, Response } from 'express';
import { Services } from '../../../../../types/Services';
import Dict = NodeJS.Dict;
import { DashboardSection } from '../../../../../components/_dashboards/dashboard-visualisation/types';
import type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils';
import type { RequestedReport } from '../../../../../types/UserReports';
import { ReportType } from '../../../../../types/UserReports';
import type { components } from '../../../../../types/api';
import { FilterValue } from '../../../../../components/_filters/types';
export declare const renderAsyncDashboard: ({ req, res, services }: AsyncReportUtilsParams) => Promise<{
    dashboardData: {
        token: string;
        id: string;
        reportId: string;
        name: string;
        description: string | undefined;
        reportName: string;
        csrfToken: string;
        sections: DashboardSection[];
        filters: {
            filters: FilterValue[];
            selectedFilters: {
                text: string;
                displayValue: string;
                key: string;
                value: (string | import("../../../../../components/_filters/types").DateRange)[];
                disabled: boolean;
                constraints: {
                    key: string;
                    value: string;
                }[] | undefined;
                classes: string;
                attributes: {
                    'aria-label': string;
                };
            }[];
            hasDefaults: boolean | undefined;
            canSaveDefaults: boolean;
        };
        type: ReportType;
        actions: import("../../../../../components/_reports/report-heading/report-actions/types").ReportAction[];
        bookmarkConfig: {
            bookmarkActionEndpoint: string;
            showBookmark: boolean;
            linkText: string;
            linkType: string;
        };
    };
}>;
declare const _default: {
    renderAsyncDashboard: ({ req, res, services }: AsyncReportUtilsParams) => Promise<{
        dashboardData: {
            token: string;
            id: string;
            reportId: string;
            name: string;
            description: string | undefined;
            reportName: string;
            csrfToken: string;
            sections: DashboardSection[];
            filters: {
                filters: FilterValue[];
                selectedFilters: {
                    text: string;
                    displayValue: string;
                    key: string;
                    value: (string | import("../../../../../components/_filters/types").DateRange)[];
                    disabled: boolean;
                    constraints: {
                        key: string;
                        value: string;
                    }[] | undefined;
                    classes: string;
                    attributes: {
                        'aria-label': string;
                    };
                }[];
                hasDefaults: boolean | undefined;
                canSaveDefaults: boolean;
            };
            type: ReportType;
            actions: import("../../../../../components/_reports/report-heading/report-actions/types").ReportAction[];
            bookmarkConfig: {
                bookmarkActionEndpoint: string;
                showBookmark: boolean;
                linkText: string;
                linkType: string;
            };
        };
    }>;
    getDefinitionData: ({ req, res, services, queryData, }: {
        req: Request;
        res: Response;
        services: Services;
        queryData?: Dict<string | string[]> | undefined;
    }) => Promise<{
        query: Record<string, string | string[]>;
        filters: {
            filters: FilterValue[];
            selectedFilters: {
                text: string;
                displayValue: string;
                key: string;
                value: (string | import("../../../../../components/_filters/types").DateRange)[];
                disabled: boolean;
                constraints: {
                    key: string;
                    value: string;
                }[] | undefined;
                classes: string;
                attributes: {
                    'aria-label': string;
                };
            }[];
            hasDefaults: boolean | undefined;
            canSaveDefaults: boolean;
        };
        dashboardDefinition: {
            id: string;
            name: string;
            description?: string;
            sections: components["schemas"]["DashboardSectionDefinition"][];
            filterFields?: components["schemas"]["FieldDefinition"][];
        };
        reportDefinition: {
            id: string;
            name: string;
            description?: string;
            variants: components["schemas"]["VariantDefinitionSummary"][];
            dashboards?: components["schemas"]["DashboardDefinitionSummary"][];
            authorised: boolean;
        };
    }>;
    setDashboardActions: (dashboardDefinition: components["schemas"]["DashboardDefinition"], reportDefinition: components["schemas"]["ReportDefinitionSummary"], requestData?: RequestedReport) => import("../../../../../components/_reports/report-heading/report-actions/types").ReportAction[];
};
export default _default;
