import { RuleEditorConfig, RuleGroup } from './types';
export type { FieldDefinition, RuleCondition, RuleEditorConfig, RuleGroup } from './types';
export declare class RuleEditor {
    private readonly container;
    private readonly config;
    private readonly instanceId;
    private readonly fields;
    private readonly maxDepth;
    private rules;
    private wrapperEl;
    private dragState;
    constructor(config: RuleEditorConfig);
    /** Get the current rule group value */
    getValue(): RuleGroup;
    /** Set the rules and re-render */
    setValue(rules: RuleGroup): void;
    /** Remove the component from the DOM and clean up */
    destroy(): void;
    /** Deep clone a rule group */
    private cloneGroup;
    /** Notify the onChange callback */
    private emitChange;
    /** Render the entire editor */
    private render;
    /** Render a rule group */
    private renderGroup;
    /** Render a single condition row */
    private renderCondition;
    /** Create an appropriate value input for the condition type */
    private createValueInput;
    /** Get operators for a field definition */
    private getOperatorsForField;
    /** Get the default value for a field type */
    private getDefaultValue;
    /** Recursively find and remove a group by ID */
    private removeGroupById;
    /** Recursively find a group by ID */
    private findGroupById;
    /** Set up drag events on a condition row */
    private setupConditionDrag;
    /** Set up drop zone on a conditions list */
    private setupGroupDropZone;
    /** Calculate the index to drop at based on mouse Y */
    private calculateDropIndex;
}
//# sourceMappingURL=index.d.ts.map