import { WithIndexer } from "../../../../../fd-toolbox-core/server/types/with-indexer";
import { ResourceMeta } from "../../../core/resource-meta";
import { ODataSelectOrExpandTree } from "./odata-expression-select-tree";
import { WithId } from "../../../../../fd-toolbox-core/types/resource-with-id";
import { ODataConfig } from "../../../../../fd-toolbox/odata/odataconfig";
import { QueryParam } from "../../../../../fd-toolbox/url/query-param";
import { BaseODataFilter } from "../../../../../fd-toolbox/odata/filters/base-odata-filter";
/** @internal */
export declare function getODataConfig(filter?: string, expand?: string, orderby?: string, skip?: number, top?: number, select?: string): {
    filters?: undefined;
    expands?: undefined;
    orderBys?: undefined;
    selects?: undefined;
    skip?: undefined;
    top?: undefined;
} | {
    filters: BaseODataFilter<unknown>[];
    expands: string[];
    orderBys: import("../../../../../../generated/npm-package").ODataOrderBy[];
    selects: string[];
    skip: number;
    top: number;
};
export declare function filterODataSelectOrExpandTree(resourceName: string, preparedTree: ODataSelectOrExpandTree, fillNotExpandbleProperties?: boolean): Promise<ODataSelectOrExpandTree>;
export declare function groupODataResults(elements: WithId[], oDataSelectOrExpandTree: ODataSelectOrExpandTree, resourceMeta: ResourceMeta): WithIndexer<unknown>[];
export declare function getEmptyODataConfig(): ODataConfig;
export declare function getODataConfigFromRequest(request: Request): Promise<{
    filters?: undefined;
    expands?: undefined;
    orderBys?: undefined;
    selects?: undefined;
    skip?: undefined;
    top?: undefined;
} | {
    filters: BaseODataFilter<unknown>[];
    expands: string[];
    orderBys: import("../../../../../../generated/npm-package").ODataOrderBy[];
    selects: string[];
    skip: number;
    top: number;
}>;
export declare function getODataFilterParams(oDataConfig: ODataConfig): QueryParam[];
/** @internal */
export declare function getBaseAndRelatedFilters(oDataConfig: ODataConfig): {
    defaultFilters: BaseODataFilter<unknown>[];
    relatedFilters: BaseODataFilter<unknown>[];
};
