import type { GlobalBootstrapDefaults, LoadedConfig, ProjectType } from "./config.js";
import { type BootstrapInspection } from "./project-detect.js";
import { loadProjectOverlay } from "./profiles.js";
import { type TemplateContext } from "./router.js";
import type { WriteResult } from "../utils/fs.js";
export interface BootstrapOptions {
    repoRoot: string;
    targetRoot: string;
    explicitProfileName?: string;
    explicitProjectType?: ProjectType;
    dryRun?: boolean;
    diffSummary?: boolean;
    backup?: boolean;
}
export interface BootstrapPlan {
    inspection: BootstrapInspection;
    profileName: string;
    profileSource: "repo-authority" | "repo-local" | "cli" | "global-accelerator" | "project-type" | "fallback-default";
    executionMode: TemplateContext["executionMode"];
    starterSpecialists: string[];
    starterValidationHints: string[];
    starterMcpHints: string[];
    warnings: string[];
    globalHomeRoot: string;
    globalDefaultsFound: boolean;
    activeRole: string;
    supportingRoles: string[];
    firstReadPreview: string[];
    verificationCommands: string[];
    coreContractSurfaces: string[];
    optionalContractSurfaces: string[];
    relevantContractSurfaces: string[];
    skippedContractSurfaces: string[];
    results: WriteResult[];
    nextFileToRead: string;
    nextSuggestedCommand: string;
    recommendedNextCommand: string;
}
export interface PreparedBootstrapContext {
    inspection: BootstrapInspection;
    overlay: Awaited<ReturnType<typeof loadProjectOverlay>>;
    profileResolution: {
        profileName: string;
        profile: LoadedConfig["routing"]["profiles"][string];
        source: BootstrapPlan["profileSource"];
    };
    starterSpecialists: string[];
    starterValidationHints: string[];
    starterMcpHints: string[];
    executionMode: TemplateContext["executionMode"];
    globalDefaults: GlobalBootstrapDefaults | null;
    context: TemplateContext;
}
export declare function prepareBootstrapContext(options: BootstrapOptions, config: LoadedConfig): Promise<PreparedBootstrapContext>;
export declare function bootstrapTarget(options: BootstrapOptions, config: LoadedConfig): Promise<BootstrapPlan>;
export declare function formatBootstrapSummary(plan: BootstrapPlan): string;
export declare function syncRepoAwareBootstrapArtifacts(targetRoot: string, options: {
    projectName: string;
    projectType: ProjectType | string;
    profileName: string;
    profileSource: string;
    activeRole: string;
    recommendedMcpPack: string;
    nextRecommendedSpecialist: string;
    nextSuggestedCommand: string;
}): Promise<WriteResult[]>;
//# sourceMappingURL=bootstrap.d.ts.map