import { type IdentityFilesVerdict } from './agent-identity-locator.js';
export declare const MANAGER_SHADOWED_SLUGS: readonly ["public", "chat", "graph", "sessions", "data"];
export type ReachReason = 'ok' | 'shadowed' | 'no-default-and-unrouted' | 'files-missing';
export interface ReachVerdict {
    reachable: boolean;
    reason: ReachReason;
    /** Names the missing/empty identity file when reason is `files-missing`,
     *  e.g. `SOUL.md:ENOENT`. Undefined for routing verdicts. */
    detail?: string;
}
export type Logger = (line: string) => void;
/** Pure verdict. Default-first: a slug that is the default is reachable at the
 *  bare root regardless of shadowing. Otherwise a non-shadowed pattern-valid
 *  slug is reachable via `/{slug}`; a shadowed slug is not; a slug that fails
 *  the route pattern is unrouted. */
export declare function reachabilityVerdict(slug: string, defaultAgent: string | null, shadowedSlugs: readonly string[]): ReachVerdict;
/** Routing verdict layered with identity-file presence. A slug that routes
 *  (default-first, then non-shadowed pattern-valid) but whose spawn dir is
 *  missing a required identity file is NOT reachable — `reachable=true` here
 *  means the spawn would find SOUL/KNOWLEDGE/IDENTITY (Task 638). The file
 *  verdict is supplied by the caller so this function stays pure and fs-free;
 *  the audit computes it from `publicIdentityFilesPresent` against the same
 *  `resolveAgentIdentityDir` the spawn composer uses. */
export declare function reachabilityWithFiles(slug: string, defaultAgent: string | null, shadowedSlugs: readonly string[], files: IdentityFilesVerdict): ReachVerdict;
export interface ReachabilityAuditDeps {
    /** The account dir (manager spawnCwd / config.accountDir). */
    accountDir: string;
    intervalMs: number;
    logger: Logger;
}
export interface ReachabilityAudit {
    start(): void;
    stop(): void;
    tickOnce(): {
        scanned: number;
        unreachable: number;
    };
}
export declare function createReachabilityAudit(deps: ReachabilityAuditDeps): ReachabilityAudit;
//# sourceMappingURL=public-agent-reachability.d.ts.map