/**
 * Living Docs Scaffold - Creates documentation structure for user projects
 *
 * This module creates the .specweave/docs/ directory structure for ANY user project.
 * It's project-agnostic and uses templates with variable substitution.
 *
 * CRITICAL: This runs during `specweave init` to set up the docs structure.
 *
 * @module core/living-docs/scaffolding/scaffold
 */
import { Logger } from '../../../utils/logger.js';
import { type TemplateContext } from './template-engine.js';
/**
 * Scaffold options
 */
export interface ScaffoldOptions {
    /** Project root path */
    projectPath: string;
    /** Project ID (e.g., "my-app") - auto-detected if not provided */
    projectId?: string;
    /** Project display name (e.g., "My Application") */
    projectName?: string;
    /** Whether to overwrite existing files */
    overwrite?: boolean;
    /** Dry run - don't create files, just report what would be created */
    dryRun?: boolean;
    /** Logger instance */
    logger?: Logger;
    /** Additional template context variables */
    additionalContext?: Record<string, unknown>;
    /**
     * Skip creating parent project folder in specs/
     * Set to true for GitHub multi-repo setups where each repo = separate project folder
     * The child repo folders will be created during sw:increment or sync
     */
    skipParentProjectFolder?: boolean;
}
/**
 * Scaffold result
 */
export interface ScaffoldResult {
    /** Whether scaffolding was successful */
    success: boolean;
    /** Files that were created */
    filesCreated: string[];
    /** Files that were skipped (already exist) */
    filesSkipped: string[];
    /** Directories that were created */
    dirsCreated: string[];
    /** Any errors that occurred */
    errors: string[];
    /** Project context used for scaffolding */
    context: TemplateContext;
}
/**
 * Scaffold class - creates living docs structure
 */
export declare class LivingDocsScaffold {
    private projectPath;
    private projectId;
    private logger;
    private templateEngine;
    private overwrite;
    private dryRun;
    private skipParentProjectFolder;
    private context;
    constructor(options: ScaffoldOptions);
    /**
     * Detect project ID from git remote or directory name
     */
    private detectProjectId;
    /**
     * Create the full living docs structure
     */
    scaffold(): Promise<ScaffoldResult>;
    /**
     * Create directory structure recursively
     */
    private createStructure;
    /**
     * Create root README.md
     */
    private createRootReadme;
    /**
     * Create project-specific specs folder
     */
    private createProjectSpecsFolder;
    /**
     * Create SUGGESTIONS.md placeholder
     */
    private createSuggestionsFile;
    /**
     * Ensure directory exists
     */
    private ensureDir;
    /**
     * Create a file with content
     */
    private createFile;
}
/**
 * Scaffold living docs structure (convenience function)
 */
export declare function scaffoldLivingDocs(options: ScaffoldOptions): Promise<ScaffoldResult>;
/**
 * Check if living docs structure exists
 */
export declare function hasLivingDocsStructure(projectPath: string): boolean;
//# sourceMappingURL=scaffold.d.ts.map