import { EditableClausePredicate } from './editable-clause-predicate';
import { BooleanOperator } from '../boolean-operator';
import { Subject } from 'rxjs';
import { PredicateWithGenerator } from './predicate-with-generator';
import { Predicate } from './predicate';
import { Category } from '../category/category';
export declare class EditableClausePredicateWithGenerators extends EditableClausePredicate {
    protected _predicates: Map<number, PredicateWithGenerator>;
    constructor(operator: BooleanOperator, parentNotifier?: Subject<void>, initiallyVisible?: boolean, bracketSubPredicateText?: boolean);
    addNewClausePredicate(operator: BooleanOperator, initiallyVisible?: boolean): number;
    addPredicate(predicate: Predicate, initiallyVisible?: boolean): number;
    /**
     * Creates a new editable predicate from the provided generator {@link Category} instance,
     * connects it to the update notifications stream and adds it to the predicate subtree.
     * @param generator
     * @param initiallyVisible
     */
    addNewPredicateFromGenerator(generator: Category<any>, initiallyVisible?: boolean): number;
    getPredicateMap(): Map<number, PredicateWithGenerator>;
    /**
     * Cleans-up the inner state of this object
     */
    destroy(): void;
}
