export type ConditionType = 'eq' | 'neq' | 'gt' | 'gteq' | 'lt' | 'lteq' | 'like' | 'nlike' | 'in' | 'nin' | 'null' | 'notnull' | 'from' | 'to' | 'finset';
export interface Filter {
    field: string;
    value: string | number | Array<string | number>;
    condition?: ConditionType;
}
export interface SearchCriteria {
    /** Filters inside one inner array are OR-ed; the groups are AND-ed (Magento semantics). */
    filterGroups?: Filter[][];
    sortOrders?: Array<{
        field: string;
        direction: 'ASC' | 'DESC';
    }>;
    pageSize?: number;
    currentPage?: number;
}
export type QueryParams = Record<string, string | number>;
/** Serialise a search criteria object to Magento's bracketed query-string format. */
export declare function toQuery(criteria?: SearchCriteria): QueryParams;
/** AND-combine simple equality/condition filters (one filter per group). */
export declare function and(...filters: Array<Filter | undefined | false>): Filter[][];
//# sourceMappingURL=search-criteria.d.ts.map