import type { SavedSuperGroup } from "./saved-super-group.js"; export interface GroupProps { name: string; description?: string | null; coreRqlRule?: GroupCoreRqlRule | null; } export interface GroupCoreRqlRule { rqlRules?: GroupRuleNode | null; rqlRulesForException?: GroupRuleNode | null; } /** Authored rules are discriminated; extracted wire rules remain opaque during hydration. */ export type GroupRuleNode = { id?: string | null; } & ({ nodeType: 'Operator'; operator: 'AND' | 'OR'; rules: GroupRuleNode[]; value?: never; } | { nodeType: 'Value'; value: GroupRuleValue; operator?: never; rules?: never; } | ({ nodeType: 'Alias'; value: GroupRuleValue; } & ({ operator?: never; rules?: never; } | { operator: 'AND' | 'OR'; rules: GroupRuleNode[]; }))); export interface GroupRuleValue { ruleType: string; rqlCondition?: string | null; orgRql?: GroupOrgRql | null; inclusion?: string[] | null; label?: string | null; comment?: string | null; id?: string | null; visitorPath?: string | null; conditionTree?: string | null; conditionsTreeMap?: Record | null; aliasGroup?: SavedSuperGroup | string | null; } export interface GroupOrgRql { roleIdForRelativeRelation?: string | null; orgRelationId?: string | null; orgRelation?: string | null; baseObject?: string | null; pathToAttribute?: string | null; } declare const COMPONENT_TYPE: "SUPERGROUP"; export type GroupConfig = Record & { type: typeof COMPONENT_TYPE; name: string; }; /** @internal Logical owner identity, separate from persisted destination IDs in extracted config. */ export type GroupIdentity = { savedApiName: string; } | { meObjId: string; spokeOwnerHandle: string; }; /** An unregistered SUPERGROUP configuration that can be embedded or saved. */ export declare class Group { private _component; private _referencedGroups; private _sourceOwner; constructor(props: GroupProps); /** @internal Hydrates a shared group configuration without registering it. */ static _fromExistingConfig(config: Record, identity: GroupIdentity): Group; getName(): string; setName(name: string): this; setDescription(description: string | null): this; setCoreRqlRule(rule: GroupCoreRqlRule | null): this; getReferencedGroups(): SavedSuperGroup[]; /** @internal Hydrated identity is preserved only for updates to its original logical owner. */ _toDict(identity: GroupIdentity): GroupConfig; } export {}; //# sourceMappingURL=group.d.ts.map