import { z } from 'zod';
export { DEFAULT_EXCLUDE_DIRS } from '../utils.js';
export declare const DiscoverCodeOptionsSchema: z.ZodObject<{
    excludeDir: z.ZodOptional<z.ZodArray<z.ZodString>>;
    noGitignore: z.ZodOptional<z.ZodBoolean>;
    ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
    overlayIgnorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export type DiscoverCodeOptions = z.infer<typeof DiscoverCodeOptionsSchema>;
export interface DiscoverCodeRuntimeOptions extends DiscoverCodeOptions {
    signal?: AbortSignal;
}
export declare function discoverCodeFiles(repoRoot: string, options?: DiscoverCodeRuntimeOptions): Promise<string[]>;
/**
 * Single-path equivalent of the fast-glob options discoverCodeFiles relies
 * on: `dot: false` (fast-glob rejects a dot-segment anywhere in the path),
 * `ignore: buildExcludeDirGlobs(excludeDir)` (`**\/<entry>` + `**\/<entry>/**`,
 * i.e. the entry's segments appearing as a contiguous run anywhere), and
 * `followSymbolicLinks: false` (neither the file nor any ancestor directory
 * below `repoRoot` may be a symlink). Kept next to discoverCodeFiles so the
 * watcher fast path (classifyChangedFiles) cannot drift from discovery.
 * Existence is deliberately not checked — absent path components cannot veto,
 * so deletions of previously indexed files still pass through.
 */
export declare function wouldDiscoverPath(repoRoot: string, absolutePath: string, excludeDir?: readonly string[]): Promise<boolean>;
