import { ArrayFilterValue, FilterKey, FilterOperator, FilterValue, FilterTypeMap, Operator, SQON, ScalarFilterValue } from './types/sqon';
type SQONBuilder = {
    and: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
    or: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
    not: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
    in: (fieldName: string, value: ArrayFilterValue) => SQONBuilder;
    gt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
    lt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
    removeExactFilter: (filter: FilterOperator) => SQONBuilder;
    removeFilter: (fieldName: string, op?: FilterKey, value?: FilterValue) => SQONBuilder;
    setFilter: <Key extends FilterKey>(fieldName: string, op: Key, value: FilterTypeMap[Key]['content']['value']) => SQONBuilder;
    toString: () => string;
    toValue: () => SQON;
} & SQON;
export declare const emptySQON: () => Operator;
declare const SQONBuilder: {
    (sqon: SQONBuilder | SQON | string): SQONBuilder;
    and: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
    or: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
    not: (content: SQON | SQON[], pivot?: string) => SQONBuilder;
    in: (fieldName: string, value: ArrayFilterValue) => SQONBuilder;
    gt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
    lt: (fieldName: string, value: ScalarFilterValue) => SQONBuilder;
    from: (input: unknown) => SQONBuilder;
};
export default SQONBuilder;
