export type PassiveAssigneeSource = 'managing' | 'primary-fallback' | 'none'; export interface PassiveAssignee { /** The house admin userId to assign, or undefined when the install has no * live house admin at all (genuine drift — no edge is written). */ userId?: string; source: PassiveAssigneeSource; } /** Pure resolver. `managingAdminUserId` wins when it still names a live house * admin (`managing`). Absent-or-non-live falls back to the first live house * admin, the primary/platform owner (`primary-fallback`). When there is no live * house admin at all, returns no assignee (`none`). Deterministic and IO-free * so the branches are unit-testable. */ export declare function resolvePassiveAssignee(managingAdminUserId: string | undefined, liveHouseAdminUserIds: string[]): PassiveAssignee; /** Read the house account's `admins[]` userIds in file order (the first is the * primary/platform owner). Filesystem-only and best-effort: an unreadable * accounts root, no house account, or an unparseable/absent `admins` yields []. * Mirrors the admin plugin's `readHouseAdminUserIds` shape; kept service-local * so the manager has no cross-plugin import. */ export declare function readHouseAdminUserIds(accountsRoot: string): string[]; //# sourceMappingURL=passive-admin-assignment.d.ts.map