import { GithubClient } from './github.js'; import { EmployeeCheckoutCoordinator } from './local-files.js'; export interface AttachedProject { projectId: string; dataRoot: string; stateRoot: string; contextRoot: string; repositoryRoot: string; repository?: string; legacy: boolean; syncMode: 'manual' | 'legacy-read-only'; pluginBoundary?: string; } export declare function withAttachedProjectLock(project: AttachedProject, operation: () => Promise): Promise; export interface AttachmentInput { projectId: string; repositoryRoot: string; repository?: string; dataRoot?: string; packageRoot?: string; legacy?: boolean; coordinator?: EmployeeCheckoutCoordinator; } export declare function attachProject(input: AttachmentInput): Promise; export declare function resolveAttachedProject(projectId: string, options?: { dataRoot?: string; packageRoot?: string; coordinator?: EmployeeCheckoutCoordinator; }): Promise; export declare function listAttachedProjects(dataRoot?: string): Promise; export declare function transitionLegacySync(project: AttachedProject, declaration: { legacyWriterStopped: boolean; }): Promise; export declare function handleProjectCommand(args: readonly string[], options: { packageRoot: string; cwd: string; github?: GithubClient; coordinator?: EmployeeCheckoutCoordinator; }): Promise;