import type { Request, Response } from 'express';
import Dict = NodeJS.Dict;
import type { components } from '../../../../../types/api';
import type { DataTable } from '../../../../../utils/DataTableBuilder/types';
import type { ListWithWarnings } from '../../../../../data/types';
import type { Services } from '../../../../../types/Services';
import { LoadType, ReportType } from '../../../../../types/UserReports';
import ReportQuery from '../../../../../types/ReportQuery';
import { FilterValue } from '../../../../../components/_filters/types';
import { FiltersType } from '../../../../../components/_filters/filtersTypeEnum';
import { ReportTemplateData } from '../../../../../utils/TemplateBuilder/SectionedDataHelper/types';
import { Columns } from '../../../../../components/_reports/report-heading/report-columns/report-columns-form/types';
export declare const getReportData: ({ services, req, token, reportId, id, dataProductDefinitionsPath, }: {
    services: Services;
    req: Request;
    token: string;
    reportId: string;
    id: string;
    dataProductDefinitionsPath?: string;
}) => Promise<{
    reportData: ListWithWarnings;
    reportDefinition: {
        id: string;
        name: string;
        description?: string;
        variant: components["schemas"]["VariantDefinition"];
    };
    reportQuery: ReportQuery;
}>;
export declare const getReport: ({ req, res, services }: {
    req: Request;
    res: Response;
    services: Services;
}) => Promise<{
    renderData: {
        csrfToken: string;
        loadType: LoadType;
        reportId: string;
        id: string;
        bookmarkConfig: {
            bookmarkActionEndpoint: string;
            showBookmark: boolean;
            linkText: string;
            linkType: string;
        };
        downloadConfig: import("../../../../../components/_reports/report-heading/report-actions/types").DownloadActionParams | undefined;
        actions: import("../../../../../components/_reports/report-heading/report-actions/types").ReportAction[];
        dataProductDefinitionsPath: string;
        reportName: string;
        name: string;
        description: string | undefined;
        count: number;
        type: ReportType;
        classification: string | undefined;
        printable: boolean | undefined;
        warnings: import("../../../../../data/types").Warnings;
        dataTable: DataTable | ReportTemplateData;
        totals: string | undefined;
        filterData: {
            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;
        };
        columns: Columns;
        pagination: import("../../../../../components/_reports/report-page/report-template/report-pagination/types").Pagination | undefined;
        reportUrl: string;
        reportSearch: string | null | undefined;
        encodedSearch: string | undefined;
        fullUrl: string;
        template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
        feedbackFormHref: string | undefined;
    };
}>;
export declare const getReportRenderData: ({ req, res, services, count, specification, reportQuery, data, filtersType, definition, columns, }: {
    req: Request;
    res?: Response;
    services?: Services;
    count: number;
    specification: components["schemas"]["Specification"];
    reportQuery: ReportQuery;
    data: Dict<string>[];
    filtersType?: FiltersType;
    definition: components["schemas"]["SingleVariantReportDefinition"];
    columns: Columns;
}) => Promise<{
    dataTable: DataTable | ReportTemplateData;
    totals: string | undefined;
    filterData: {
        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;
    };
    columns: Columns;
    pagination: import("../../../../../components/_reports/report-page/report-template/report-pagination/types").Pagination | undefined;
    reportUrl: string;
    reportSearch: string | null | undefined;
    encodedSearch: string | undefined;
    fullUrl: string;
    template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
}>;
export declare const getRenderData: ({ req, res, services, reportDefinition, reportQuery, reportData, count, columns, }: {
    req: Request;
    res: Response;
    services: Services;
    reportDefinition: components["schemas"]["SingleVariantReportDefinition"];
    reportQuery: ReportQuery;
    reportData: ListWithWarnings;
    csrfToken: string;
    count: number;
    columns: Columns;
}) => Promise<{
    reportName: string;
    name: string;
    description: string | undefined;
    count: number;
    type: ReportType;
    classification: string | undefined;
    printable: boolean | undefined;
    warnings: import("../../../../../data/types").Warnings;
    dataTable: DataTable | ReportTemplateData;
    totals: string | undefined;
    filterData: {
        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;
    };
    columns: Columns;
    pagination: import("../../../../../components/_reports/report-page/report-template/report-pagination/types").Pagination | undefined;
    reportUrl: string;
    reportSearch: string | null | undefined;
    encodedSearch: string | undefined;
    fullUrl: string;
    template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
}>;
declare const _default: {
    getRenderData: ({ req, res, services, reportDefinition, reportQuery, reportData, count, columns, }: {
        req: Request;
        res: Response;
        services: Services;
        reportDefinition: components["schemas"]["SingleVariantReportDefinition"];
        reportQuery: ReportQuery;
        reportData: ListWithWarnings;
        csrfToken: string;
        count: number;
        columns: Columns;
    }) => Promise<{
        reportName: string;
        name: string;
        description: string | undefined;
        count: number;
        type: ReportType;
        classification: string | undefined;
        printable: boolean | undefined;
        warnings: import("../../../../../data/types").Warnings;
        dataTable: DataTable | ReportTemplateData;
        totals: string | undefined;
        filterData: {
            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;
        };
        columns: Columns;
        pagination: import("../../../../../components/_reports/report-page/report-template/report-pagination/types").Pagination | undefined;
        reportUrl: string;
        reportSearch: string | null | undefined;
        encodedSearch: string | undefined;
        fullUrl: string;
        template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
    }>;
    getReport: ({ req, res, services }: {
        req: Request;
        res: Response;
        services: Services;
    }) => Promise<{
        renderData: {
            csrfToken: string;
            loadType: LoadType;
            reportId: string;
            id: string;
            bookmarkConfig: {
                bookmarkActionEndpoint: string;
                showBookmark: boolean;
                linkText: string;
                linkType: string;
            };
            downloadConfig: import("../../../../../components/_reports/report-heading/report-actions/types").DownloadActionParams | undefined;
            actions: import("../../../../../components/_reports/report-heading/report-actions/types").ReportAction[];
            dataProductDefinitionsPath: string;
            reportName: string;
            name: string;
            description: string | undefined;
            count: number;
            type: ReportType;
            classification: string | undefined;
            printable: boolean | undefined;
            warnings: import("../../../../../data/types").Warnings;
            dataTable: DataTable | ReportTemplateData;
            totals: string | undefined;
            filterData: {
                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;
            };
            columns: Columns;
            pagination: import("../../../../../components/_reports/report-page/report-template/report-pagination/types").Pagination | undefined;
            reportUrl: string;
            reportSearch: string | null | undefined;
            encodedSearch: string | undefined;
            fullUrl: string;
            template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
            feedbackFormHref: string | undefined;
        };
    }>;
    getReportData: ({ services, req, token, reportId, id, dataProductDefinitionsPath, }: {
        services: Services;
        req: Request;
        token: string;
        reportId: string;
        id: string;
        dataProductDefinitionsPath?: string;
    }) => Promise<{
        reportData: ListWithWarnings;
        reportDefinition: {
            id: string;
            name: string;
            description?: string;
            variant: components["schemas"]["VariantDefinition"];
        };
        reportQuery: ReportQuery;
    }>;
    getReportRenderData: ({ req, res, services, count, specification, reportQuery, data, filtersType, definition, columns, }: {
        req: Request;
        res?: Response;
        services?: Services;
        count: number;
        specification: components["schemas"]["Specification"];
        reportQuery: ReportQuery;
        data: Dict<string>[];
        filtersType?: FiltersType;
        definition: components["schemas"]["SingleVariantReportDefinition"];
        columns: Columns;
    }) => Promise<{
        dataTable: DataTable | ReportTemplateData;
        totals: string | undefined;
        filterData: {
            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;
        };
        columns: Columns;
        pagination: import("../../../../../components/_reports/report-page/report-template/report-pagination/types").Pagination | undefined;
        reportUrl: string;
        reportSearch: string | null | undefined;
        encodedSearch: string | undefined;
        fullUrl: string;
        template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
    }>;
};
export default _default;
