/** * People Hub — cross-domain shared types. * * Domain folders (legal/, perms/, identity/, process/) import these for the * shapes used everywhere (action opts, error guard shape). Keeping them here * lets each domain file declare only what its actions actually need without * re-declaring them or reaching across domain boundaries. */ /** Options accepted by every People action wrapper. Mirrors `GovActionOpts` * so consumers have one shape across packs. */ export interface PeopleActionOpts { /** UUIDv4 idempotency token (ADR-006 D3). Repeat ⇒ audited NO_OP. */ intentionId?: string; /** Optimistic concurrency guard; mismatch ⇒ 409 `version_conflict` (ADR-006 D4). */ expectedVersion?: number; } /** Singleton shape returned by engine domain guard rejections (HTTP 200 path; * rendered as data — never raised. See api_references §9.1). */ export interface PeopleGuardRejection { success: false; error: string; /** Top-level per-rule structured reasons (api_references §1: the guard * rejection body carries `details` beside `error`, not under `output`). */ details?: unknown[]; durationMs: number; output?: { [key: string]: unknown; }; } /** Domain guard outcome union — consumers narrow the `success` branch before * casting `output` to the per-action type. */ export type PeopleActionResult = { success: true; output?: Record; } | PeopleGuardRejection; //# sourceMappingURL=shared.types.d.ts.map