import { Json } from '../types/Json';
import { Sort } from '../types/Sort';
import { Convert } from '../utils/Convert';
export declare class Condition {
    readonly key: string;
    readonly operator: string;
    readonly value: unknown;
    constructor(key: string, operator: string, value: unknown);
    and: (...others: Condition[]) => LogicalCondition;
    or: (...others: Condition[]) => LogicalCondition;
    toJSON(): Json;
}
export declare class LogicalCondition {
    readonly operator: string;
    readonly conditions: Condition[];
    constructor(operator: string, conditions: Condition[]);
    toJSON(): Json;
}
export declare class SortCondition extends Condition implements Sort {
    readonly key: string;
    readonly value: -1 | 1;
    constructor(key: string, value: -1 | 1);
    toJSON(): Json;
}
export declare const toCondition: (field: string, operator: string, value: unknown, conv?: Convert) => Condition;
export declare const isSortCondition: (s?: unknown) => s is SortCondition;
