/**
 * Project Scaffolding Utilities
 *
 * Detects project type, generates project-specific team.json and goals.md,
 * and provides preset team templates for common verticals (Dev Team,
 * Content Agency, Support Team).
 *
 * Used by `crewly init` to create a fully configured .crewly/ directory
 * tailored to the user's project.
 *
 * @module cli/utils/project-scaffold
 */
/** Detected project type */
export type ProjectType = 'node' | 'python' | 'generic';
/** Result of project type detection */
export interface ProjectDetection {
    /** The detected project type */
    type: ProjectType;
    /** Human-readable label for the project type */
    label: string;
    /** Name of the project (from package.json, setup.py, or directory name) */
    projectName: string;
    /** Signals that helped identify the project type */
    signals: string[];
}
/** A preset team configuration for a specific vertical */
export interface PresetTeam {
    /** Unique preset identifier */
    id: string;
    /** Human-readable name shown during selection */
    name: string;
    /** Short description of the team's purpose */
    description: string;
    /** Agent definitions */
    members: PresetMember[];
    /** Suggested goals for this team type */
    suggestedGoals: string[];
}
/** A member within a preset team */
export interface PresetMember {
    /** Display name */
    name: string;
    /** Role identifier matching config/roles/ */
    role: string;
    /** System prompt */
    systemPrompt: string;
}
/**
 * Detects the project type by examining files in the given directory.
 *
 * Checks for common project markers:
 * - Node.js: package.json, tsconfig.json, node_modules/
 * - Python: requirements.txt, setup.py, pyproject.toml, Pipfile
 * - Generic: everything else
 *
 * @param projectDir - The directory to inspect (defaults to cwd)
 * @returns Detection result with type, label, project name, and signals
 */
export declare function detectProjectType(projectDir?: string): ProjectDetection;
/** All available preset teams */
export declare const PRESET_TEAMS: PresetTeam[];
/**
 * Gets a preset team by ID.
 *
 * @param id - The preset identifier (e.g. "dev-team")
 * @returns The matching preset, or undefined if not found
 */
export declare function getPresetTeam(id: string): PresetTeam | undefined;
/**
 * Generates a goals.md file content based on the project name, type, and selected team.
 *
 * @param projectName - The project's name
 * @param projectType - The detected project type
 * @param preset - The selected preset team (optional)
 * @returns The goals.md content as a string
 */
export declare function generateGoalsContent(projectName: string, projectType: ProjectType, preset?: PresetTeam): string;
/**
 * Generates a team.json object for the .crewly/ directory from a preset team.
 *
 * Creates full member objects with UUIDs, session names, and status fields.
 *
 * @param preset - The preset team to generate from
 * @param projectName - The project name for session name generation
 * @returns The team config object ready to be serialized to JSON
 */
export declare function generateTeamConfig(preset: PresetTeam, projectName: string, runtimeType?: string): Record<string, unknown>;
/**
 * Writes the enhanced project scaffold to the .crewly/ directory.
 *
 * Creates:
 * - .crewly/team.json — project-specific team configuration
 * - .crewly/goals.md — project goals and milestones
 * - .crewly/docs/, memory/, tasks/ directories
 * - .crewly/config.env — environment configuration stub
 *
 * Skips files that already exist to avoid overwriting user changes.
 *
 * @param projectDir - The project root directory
 * @param preset - The selected preset team
 * @param detection - The project detection result
 * @returns Object indicating which files were created
 */
export declare function writeProjectScaffold(projectDir: string, preset: PresetTeam, detection: ProjectDetection): {
    teamJsonCreated: boolean;
    goalsCreated: boolean;
    dirsCreated: boolean;
};
//# sourceMappingURL=project-scaffold.d.ts.map