import type { DirectoryDiagnostic, DirectorySlot } from './types.js'; export interface ScannedFile { readonly path: string; readonly relativePath: string; readonly id: string; } export interface ScanResult { readonly files: readonly ScannedFile[]; readonly diagnostics: readonly DirectoryDiagnostic[]; } /** * List the code files directly inside one slot directory. * * **Symlinks are refused, not followed.** A directory handed to this loader is * caller-supplied, and a link inside it pointing anywhere else is the * link-following weakness (CWE-59) with the loader as the vehicle: the file * that gets imported is not the file that was listed. The estate already * decided this for its filesystem tools; the same rule applies to a directory * whose author may not be the host. * * That is stricter than the SDK's own `discoverSkills`, and deliberately so — * that function walks a host's own trusted tree, where following a link is a * convenience rather than a hole. Reusing it here would have inherited a * threat model chosen for a different caller. * * Only the top level is read. A nested directory is reported so an author * learns their file was not picked up, except when its name starts with `.` * or `_`, which is the conventional way to say "not for you" and is honoured * silently. */ export declare function scanSlot(root: string, slot: DirectorySlot, dirName: string): Promise; /** Canonical absolute root, or undefined when the directory does not exist. */ export declare function canonicalRoot(dir: string): Promise; /** Posix-normalised, for a `relativePath` that reads the same on every platform. */ export declare function toPosix(value: string): string; //# sourceMappingURL=scan.d.ts.map