import type { ParsedQs } from 'qs';
import { FilteredListRequest } from './index';
import Dict = NodeJS.Dict;
import { components } from './api';
import { Template } from './Templates';
import { ReportType } from './UserReports';
export declare const DEFAULT_FILTERS_PREFIX = "filters.";
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 };
export default ReportQuery;
