import type { UID, Modules } from '@strapi/types';
/**
 * Division of allowlists:
 *
 * - ALLOWED_DOCUMENT_PARAM_KEYS: keys that are passed through to the query builder
 *   (transformParamsToQuery → convert-query-params). Only these affect the actual query.
 *   Used by pickAllowedQueryParams() so unknown keys are stripped before the transformer.
 *
 * - ALLOWED_DOCUMENT_ROOT_PARAM_KEYS: keys we accept at the document service entry when
 *   api.documents.strictParams is true (checkUnrecognizedRootParams). Must be a superset
 *   of ALLOWED_DOCUMENT_PARAM_KEYS. Can include keys we accept but do not pass to the
 *   query builder (e.g. REST-shaped keys that callers send; we allow them then strip).
 */
/**
 * Keys passed to the query-params transformer. = SHARED_QUERY_PARAM_KEYS + withCount.
 */
export declare const ALLOWED_DOCUMENT_PARAM_KEYS: readonly ["filters", "sort", "fields", "populate", "status", "locale", "page", "pageSize", "start", "limit", "_q", "publicationFilter", "hasPublishedVersion", "withCount"];
/**
 * Keys allowed at root when strictParams is true. = ALLOWED_DOCUMENT_PARAM_KEYS plus:
 * - data: create/update payload (never part of query params)
 * - pagination, count, ordering: REST-style keys core-api may pass; accepted then stripped (query builder uses flat page/pageSize/start/limit and does not use count/ordering at root)
 */
export declare const ALLOWED_DOCUMENT_ROOT_PARAM_KEYS: readonly ["filters", "sort", "fields", "populate", "status", "locale", "page", "pageSize", "start", "limit", "_q", "publicationFilter", "hasPublishedVersion", "withCount", "data", "pagination", "count", "ordering"];
/** Restrict to allowed query keys so only these reach the query-params transformer (security). */
export declare const pickAllowedQueryParams: (params: Record<string, unknown>) => Record<(typeof ALLOWED_DOCUMENT_PARAM_KEYS)[number], unknown>;
declare const pickSelectionParams: <TUID extends UID.ContentType>(data: unknown) => Modules.Documents.Params.Pick<TUID, "fields" | "populate" | "status">;
export { pickSelectionParams };
//# sourceMappingURL=params.d.ts.map