import { DesiredAssignment, Kind, OrgTarget, OrgUser } from './model.js'; import { TargetName } from './target-name.js'; import { Username } from './username.js'; import { Finding } from './finding.js'; /** The distinct usernames assigned across all assignments. */ export declare function distinctAssignees(assignments: DesiredAssignment[]): Username[]; /** The distinct targets of one kind across all assignments. */ export declare function distinctTargets(assignments: DesiredAssignment[], kind: Kind): TargetName[]; /** * Every declared user must exist in the org, and be active unless the caller opted into * deactivated ones. A deactivated user keeps every grant they held, so refusing to name * them is what would otherwise put an offboarding cleanup out of reach. */ export declare function evaluateUsers(declared: Username[], found: OrgUser[], includeInactive: boolean): Finding[]; /** * Every declared target of one kind must resolve to exactly one record in the * org. `found` is the list of matching identifiers the org returned; matching is * case-insensitive, mirroring how the org compares them. */ export declare function evaluateTargets(kind: Kind, declared: TargetName[], found: TargetName[]): Finding[]; /** * Index users by their comparison key to their org id, for building assignments. Skips the * deactivated ones unless the caller asked for them, so a user evaluateUsers rejected never * reaches the DML with an id. */ export declare function indexUsersById(found: OrgUser[], includeInactive: boolean): Map; /** Index targets by their comparison key to their org id, skipping names that resolve ambiguously. */ export declare function indexTargetsById(found: OrgTarget[]): Map; //# sourceMappingURL=resolve.d.ts.map