@grouparoo/core
Version:
The Grouparoo Core
60 lines (59 loc) • 2.44 kB
TypeScript
import { Group, GroupRuleWithKey } from "../../models/Group";
import { Run } from "../../models/Run";
import { GrouparooRecord } from "../../models/GrouparooRecord";
import { Import } from "../../models/Import";
export declare namespace GroupOps {
/**
* Given a GrouparooRecord, create an import to recalculate its Group Membership.
*/
function updateRecords(recordIds: string[], creatorType: Import["creatorType"], creatorId: string, destinationId?: string): Promise<Import[]>;
/**
* Check if the record should be in this Group
*/
function updateRecordsMembership(group: Group, records: GrouparooRecord[]): Promise<{
[recordId: string]: boolean;
}>;
/**
* Count the members that would be in this group
*/
function countPotentialMembers(group: Group, rules?: GroupRuleWithKey[], matchType?: "any" | "all"): Promise<number>;
/**
* Take the rules for the group and check how many group members there would have been both individually for each single rule, and then by building up the query step-by-step
*/
function countComponentMembersFromRules(group: Group, rules?: GroupRuleWithKey[]): Promise<{
componentCounts: number[];
funnelCounts: number[];
}>;
/**
* Part 1 of the Group Run
* Add New Members
*/
function runAddGroupMembers(group: Group, run: Run, limit?: number, offset?: number, highWaterMark?: number, destinationId?: string): Promise<{
groupMembersCount: number;
nextHighWaterMark: number;
nextOffset: number;
}>;
/**
* Part 2 of the Group Run
* Remove Members
*/
function runRemoveGroupMembers(group: Group, run: Run, limit?: number, destinationId?: string): Promise<number>;
/**
* Part 3 for the Group Run
* Check if there was anyone we should have removed from a previous Run that was stopped for this Run
*/
function removePreviousRunGroupMembers(group: Group, run: Run, limit?: number): Promise<number>;
/**
* Determine if these Group Rules are equal
*/
function rulesAreEqual(oldRules: GroupRuleWithKey[], newRules: GroupRuleWithKey[]): boolean;
/**
* Get a list of all groups and when the newest member was added
*/
function newestGroupMembers(limit?: number): Promise<{
groups: Group[];
newestMembersAdded: {
[id: string]: number;
};
}>;
}