import type { ProjectResult, ProjectInfo, ProjectsRegistry } from '../models/project'; import { resolveProject } from '../config/resolver'; /** Options for project operations */ export interface ProjectServiceOptions { /** Override registry path (for testing) */ registryPath?: string; /** Override cwd for resolution (for testing) */ cwd?: string; } /** * Validate project name format per FR-URD-002-0011: * - Lowercase alphanumeric and hyphens only * - Starts with a letter * - Ends with a letter or digit * - No consecutive hyphens * - 1–64 characters * * @throws ProjectEmptyNameError (ERR-PROJ-003) if name is empty/whitespace * @throws ProjectInvalidNameError (ERR-PROJ-008) if name format is invalid */ export declare function validateProjectName(name: string): void; /** * Create a new project: make the folder, initialize pmp/project.db, * register in ~/.config/cortex-cli/registry.json. * * @throws ProjectEmptyNameError (ERR-PROJ-003) if name is empty * @throws ProjectInvalidNameError (ERR-PROJ-008) if name format is invalid * @throws DuplicateProjectError (ERR-PROJ-001) if the project name already exists * @throws ProjectPathExistsError (ERR-PROJ-002) if the folder path already exists (directory) * @throws ProjectPathNotDirectoryError (ERR-PROJ-013) if the path exists as a file/symlink */ export declare function createProject(name: string, folder: string, opts?: ProjectServiceOptions): ProjectResult; /** * Register an existing project folder. * Creates pmp/project.db if it doesn't exist. * Adds to ~/.config/cortex-cli/registry.json. * * @throws ProjectEmptyNameError (ERR-PROJ-003) if name is empty * @throws ProjectInvalidNameError (ERR-PROJ-008) if name format is invalid * @throws DuplicateProjectError (ERR-PROJ-001) if the project name already exists * @throws ProjectFolderNotFoundError (ERR-PROJ-005) if the folder doesn't exist */ export declare function registerProject(name: string, folder: string, opts?: ProjectServiceOptions): ProjectResult; /** * Remove a project from the global registry. * Does NOT delete the project folder or database. * * @throws ProjectNotFoundError (ERR-PROJ-007) if the project doesn't exist */ export declare function removeProject(name: string, opts?: ProjectServiceOptions): { name: string; folder: string; dbPath: string; }; /** * List all registered projects. */ export declare function listAllProjects(opts?: ProjectServiceOptions): ProjectsRegistry; /** * Show project details: folder, database path, sprint summary, entity counts. * * @throws ProjectNotFoundError (ERR-PROJ-007) if the project doesn't exist */ export declare function getProjectInfo(name: string, opts?: ProjectServiceOptions): ProjectInfo; /** * Resolve the project to use for a command. * Delegates to ProjectResolver. */ export declare function resolveProjectForCommand(opts?: ProjectServiceOptions): ReturnType; //# sourceMappingURL=project.d.ts.map