import { CriteriaAdapter, CriteriaOptions, FieldPath, Filter, FilterValueFor, OperatorsForType, Order, OrderDirection, Pagination, PathValue, QueryParamsObject, Search, TypedFilter, TypedOrder } from "./types/index.js"; export declare class Criteria { private _filters; private _orders; private _pagination; private _search?; private _adapter?; private constructor(); static create(): Criteria; useAdapter>(map: A): this; getAdapter(): CriteriaAdapter | undefined; where>(field: K, operator: OperatorsForType>>, value?: FilterValueFor>, options?: CriteriaOptions): this; whereEquals>(field: K, value: PathValue): this; whereContains>(field: K, value: PathValue): this; whereIn>(field: K, values: PathValue[]): this; whereBetween>(field: K, min: PathValue, max: PathValue): this; whereNull>(field: K): this; whereNotNull>(field: K): this; whereSome>(field: K, operator: OperatorsForType>>, value?: FilterValueFor>): this; whereEvery>(field: K, operator: OperatorsForType>>, value?: FilterValueFor>): this; whereNone>(field: K, operator: OperatorsForType>>, value?: FilterValueFor>): this; orderBy>(field: K, direction?: OrderDirection): this; orderByAsc>(field: K): this; orderByDesc>(field: K): this; search(value: string): this; hasSearch(): boolean; getSearch(): Search | undefined; paginate(page: number, limit: number): this; limit(limit: number): this; getFilters(): Filter[]; getOrders(): Order[]; getPagination(): Pagination; hasFilters(): boolean; hasOrders(): boolean; hasPagination(): boolean; clone(): Criteria; toJSON(): { filters: { field: FieldPath; operator: "equals" | "notEquals" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "contains" | "startsWith" | "endsWith" | "in" | "notIn" | "between" | "isNull" | "isNotNull"; value: any; options: CriteriaOptions | undefined; }[]; orders: { field: FieldPath; direction: OrderDirection; }[]; pagination: Pagination; search: string | undefined; }; static fromObject(obj: { filters?: TypedFilter[]; orders?: TypedOrder[]; pagination?: Pagination; search?: Search; }, adapter?: CriteriaAdapter): Criteria; protected resolveFieldPath(field: FieldPath): FieldPath; static fromQueryParams(query: QueryParamsObject | undefined, adapter?: CriteriaAdapter): Criteria; toQueryObject(): QueryParamsObject; toQueryParams(): URLSearchParams; private validateOperator; private parseFilterValue; } //# sourceMappingURL=criteria.d.ts.map