/**
 * Coordinates fact extraction for a project.
 * Full extraction combines stack detection, shared project facts, and per-agent
 * facts. Dashboard summary extraction can skip stack detection because that
 * shared report contract does not expose stack-derived fields.
 */
import type { ProjectFacts, ReadonlyFS, AgentId } from "../types.js";
import type { LoadedConfig } from "../config/types.js";
/** Optional profiler seam for timing fact extraction spans without changing returned facts. */
interface FactExtractionProfiler {
    span<T>(name: string, fn: () => T): T;
}
/** Configuration for extracting project facts during a scan run. */
interface ExtractOptions {
    agentFilter: AgentId | null;
    projectPath?: string;
    configState: LoadedConfig;
    /** Optional agent set supplied by callers that must not be narrowed by config. */
    managedAgentIds?: AgentId[];
    /** Skip expensive setup-time stack detection for dashboard summary audits. */
    includeStack?: boolean;
    /** Optional development/test profiler for extraction timing. */
    profile?: FactExtractionProfiler | undefined;
}
/**
 * Gather stack, shared, and per-agent facts into the single scan input object.
 *
 * @param fs - filesystem adapter for the target project
 * @param options - extraction scope, config state, stack profile, and optional profiler
 * @returns project facts consumed by audit, setup, and quality prompt generation
 */
export declare function extractProjectFacts(fs: ReadonlyFS, options: ExtractOptions): ProjectFacts;
export {};
//# sourceMappingURL=orchestrator.d.ts.map