/**
 * Create Project Use Case
 *
 * Orchestrates "create a new empty project folder under the Shep projects
 * root". Owns the project naming rules (validation, slugification, length
 * cap) and the "must not already exist" guard. Delegates filesystem and git
 * work to IProjectScaffoldService so the application layer remains free of
 * node:fs / child_process imports.
 *
 * Presentation-agnostic: callable from CLI, TUI, and Web identically.
 */
import type { IProjectScaffoldService } from '../../ports/output/services/project-scaffold-service.interface.js';
export interface CreateProjectInput {
    /** User-supplied project name. Will be slugified for the directory name. */
    name: string;
}
export interface CreateProjectSuccess {
    ok: true;
    /** Absolute path to the created folder, normalized to forward slashes. */
    path: string;
}
export interface CreateProjectFailure {
    ok: false;
    error: string;
}
export type CreateProjectResult = CreateProjectSuccess | CreateProjectFailure;
/**
 * Slugify a user-supplied project name into a safe directory name.
 *
 * - Lowercases
 * - Replaces whitespace + invalid chars with `-`
 * - Strips leading/trailing dashes and dots
 * - Caps length so we stay well under Windows' 260-char path limit
 *
 * Exported for unit testing — production callers should use the use case.
 */
export declare function slugifyProjectName(name: string): string;
export declare class CreateProjectUseCase {
    private readonly scaffoldService;
    constructor(scaffoldService: IProjectScaffoldService);
    execute(input: CreateProjectInput): Promise<CreateProjectResult>;
}
//# sourceMappingURL=create-project.use-case.d.ts.map