import type { Employee, JinnConfig } from "../shared/types.js"; export declare function scanOrg(config?: JinnConfig): Map; /** Fields of an employee YAML that may be mutated via the update API. * `name` is intentionally excluded — it is the immutable identity/lookup key. */ export interface EmployeeUpdate { displayName?: string; department?: string; rank?: Employee["rank"]; engine?: string; model?: string; effortLevel?: string | null; persona?: string; reportsTo?: string | string[]; cliFlags?: string[]; alwaysNotify?: boolean; } export interface EmployeeUpdateResult { ok: boolean; updates?: EmployeeUpdate; error?: string; } /** * Validate an employee update body against the model/engine registry and the * Employee type's constraints. Pure — does no IO. Rejects: * - `name` (immutable) and any key not in WRITABLE_FIELDS * - empty/whitespace displayName or persona (an empty persona makes scanOrg drop * the employee — G3) * - an invalid rank enum * - an unknown engine, or a model/effortLevel invalid for the *resulting* engine * - wrong-typed cliFlags / alwaysNotify / reportsTo * * `current` supplies the existing engine/model so model+effort can be validated * even when those fields aren't part of this update. */ export declare function validateEmployeeUpdate(config: JinnConfig, current: Employee, body: Record): EmployeeUpdateResult; /** * Update an employee's YAML file by read-merging the provided writable fields. * Only keys in WRITABLE_FIELDS are written; `name` is never touched (immutable). * Untouched YAML fields are preserved. Returns true on success, false if the * employee's YAML can't be found/parsed. Validate with validateEmployeeUpdate first. */ export declare function updateEmployeeYaml(name: string, updates: EmployeeUpdate): boolean; export declare function extractMention(text: string, registry: Map): Employee | undefined; //# sourceMappingURL=org.d.ts.map