import { ParsedQs } from 'qs';
import { FilteredListRequest } from './index.d.js';
import { components } from './api.d.js';
import { Template } from './Templates.d.js';
import { ReportType } from './UserReports.js';

import Dict = NodeJS.Dict;

declare class ReportQuery implements FilteredListRequest {
    selectedPage: number;
    pageSize: number;
    sortColumn?: string | undefined;
    columns: Array<string>;
    sortedAsc: boolean;
    filters: Dict<string>;
    filtersPrefix: string;
    dataProductDefinitionsPath?: string | undefined;
    constructor({ fields, template, queryParams, definitionsPath, filtersPrefix, reportType, }: {
        fields: components['schemas']['FieldDefinition'][];
        template?: Template;
        queryParams: ParsedQs;
        definitionsPath?: string;
        filtersPrefix?: string;
        reportType?: ReportType;
    });
    private getDefaultSortColumn;
    private getDefaultSortDirection;
    getPageSize(queryParams: ParsedQs, template?: Template, reportType?: ReportType): number;
    toRecordWithFilterPrefix(removeClearedFilters?: boolean): Record<string, string | Array<string>>;
    private getDefaultPageSize;
}

export { ReportQuery, ReportQuery as default };
