import { Condition } from "../types";
export interface SubRuleResult {
    parent?: Condition;
    subRule: Condition;
}
export declare class RuleHelper {
    #private;
    /**
     * Extracts all sub-rules from a condition.
     * @param condition The condition to extract sub-rules from.
     * @param results The sub-conditions result set
     * @param root The root condition which holds the condition to extract sub-rules from.
     */
    extractSubRules(condition: Condition, results?: SubRuleResult[], root?: Condition): SubRuleResult[];
    /**
     * Removes all subrules from the provided condition.
     * @param haystack The condition to search in and remove all sub-rules from.
     */
    removeAllSubRules(haystack: Condition): Condition | null;
    /**
     * Removes all null properties from an object.
     * @param obj The object to remove null properties from.
     * @param defaults The default values to remove.
     */
    stripNullProps(obj: Record<string, any>, defaults?: any[]): any;
}
