import { z } from '@strapi/utils';
import type { Struct } from '@strapi/types';
/** Attribute types considered scalar for sorting and filtering (excludes relations, components, media, json, blocks). */
export declare const SCALAR_ATTRIBUTE_TYPES: Set<string>;
/**
 * Returns the list of scalar attribute keys from a content type's attributes.
 * Relation, component, dynamiczone, media, json, and blocks are excluded because
 * they cannot be meaningfully sorted or filtered via simple operators.
 */
export declare const getScalarAttributeKeys: (attributes: Struct.SchemaAttributes, permittedFields?: Set<string> | null) => string[];
/**
 * Builds a per-content-type sort Zod schema constrained to the model's scalar fields.
 *
 * Supports all four Strapi sort notations:
 *   - string:        "title:asc"
 *   - string[]:      ["title:asc", "createdAt:desc"]
 *   - object:        { title: "asc" }
 *   - object[]:      [{ title: "asc" }, { createdAt: "desc" }]
 *
 * Object forms have their keys constrained to known scalar attribute names.
 * If the model has no scalar attributes, the schema is z.never() (sort not allowed).
 */
export declare const buildSortSchema: (attributes: Struct.SchemaAttributes, permittedFields?: Set<string> | null) => z.ZodTypeAny;
//# sourceMappingURL=sort-schema.d.ts.map