import { NameLabelPair, OptionGroup, RuleGroupTypeAny, RuleType, UpdateableProperties, ValueSources } from '../types/index.noReact';
export declare const add: <RG extends RuleGroupTypeAny>(query: RG, ruleOrGroup: RuleType<string, string, any> | RG, parentPath: number[]) => RG;
interface UpdateOptions {
    resetOnFieldChange: boolean;
    resetOnOperatorChange: boolean;
    getRuleDefaultOperator: (field: string) => string;
    getValueSources: (field: string, operator: string) => ValueSources;
    getRuleDefaultValue: (rule: RuleType) => any;
}
export declare const update: <RG extends RuleGroupTypeAny>(query: RG, prop: UpdateableProperties, value: any, path: number[], { resetOnFieldChange, resetOnOperatorChange, getRuleDefaultOperator, getValueSources, getRuleDefaultValue, }?: Partial<UpdateOptions>) => RG;
export declare const remove: <RG extends RuleGroupTypeAny>(query: RG, path: number[]) => RG;
interface MoveOptions {
    clone: boolean;
    combinators: NameLabelPair[] | OptionGroup[];
}
export declare const move: <RG extends RuleGroupTypeAny>(query: RG, oldPath: number[], newPath: number[], { clone, combinators }?: Partial<MoveOptions>) => RG;
export {};
