export type AgentRole = 'admin' | 'public';
/** The single source of truth for the directory a spawn reads an agent's
 *  identity files from. Admin always reads `agents/admin`; a public agent
 *  reads `agents/<slug>` (Task 638 — keyed on the agent slug, not the role).
 *  The spawn composer (`system-prompt.ts`) and the standing reachability audit
 *  (`public-agent-reachability.ts`) both resolve through THIS function, so the
 *  directory the audit vouches for is byte-identical to the one the spawn
 *  reads — drift is impossible by construction, not by parallel literals. */
export declare function resolveAgentIdentityDir(accountDir: string, role: AgentRole, slug: string): string;
export interface IdentityFilesVerdict {
    present: boolean;
    /** First missing/empty file when `present` is false, e.g. `SOUL.md:ENOENT`
     *  or `KNOWLEDGE.md:empty`. Undefined when present. */
    detail?: string;
}
/** Whether the identity files a `role=public` spawn requires — IDENTITY.md,
 *  SOUL.md and KNOWLEDGE.md, each non-empty — are present in `dir`. The check
 *  order mirrors the composer's (IDENTITY → SOUL → KNOWLEDGE) so the reported
 *  first-failing file matches the composer's refusal reason. The audit runs
 *  this against `resolveAgentIdentityDir(accountDir, 'public', slug)`, so
 *  `present:true` means the spawn will not refuse on a missing identity file. */
export declare function publicIdentityFilesPresent(dir: string): IdentityFilesVerdict;
//# sourceMappingURL=agent-identity-locator.d.ts.map