import { ModelGroup, ModelRule } from '../types'; import { Events, EventsDetailMap } from './events'; type ChildrenOperatorFn = (children: ModelGroup['children']) => ModelGroup['children']; /** * Finds a group within a model and applies a function to create a new children * @param model The root group to start searching from * @param groupId The Group ID to find * @param fn The function to apply to the children of the found group. A *new* object must be created and returned * @returns A *new* root `Group` object which the function has been applied to. If the group isn't found an error is thrown */ export declare function findOperateOnGroup(model: ModelGroup, groupId: string, fn: ChildrenOperatorFn): ModelGroup; export declare function addGroupOrRule(model: ModelGroup, parentGroupId: string, newItem: ModelGroup | ModelRule): ModelGroup; export declare function deleteGroup(model: ModelGroup, groupIdToDelete: string): ModelGroup; export declare function deleteRule(model: ModelGroup, ruleIdToDelete: string): ModelGroup; export declare const ROOT_GROUP = "group-root"; export declare function updateGroupData(model: ModelGroup, groupIdToUpdate: string, newData: EventsDetailMap[Events.UpdateGroup]['newData']): ModelGroup; export declare function updateRuleData(model: ModelGroup, ruleIdToUpdate: string, newData: EventsDetailMap[Events.UpdateRule]['newData']): ModelGroup; export {}; //# sourceMappingURL=expression-builder.helpers.d.ts.map