/**
 * Non-interactive init options. When provided to `executeProjectInit`, skips
 * the readline prompts and uses these values directly. Used by the Console
 * POST /api/projects endpoint so the whole CLI flow can run from a web form.
 */
export interface ProjectInitOpts {
    projectDir: string;
    mergeBranch: string;
    maxWorkers: string;
    gitlabProject?: string;
    gitlabProjectId?: string;
    matrixRoomId?: string;
    /** v0.50.24：是否启用 git；false → conf 跳过 GITLAB_*，project.yaml 写 git:false */
    enableGit?: boolean;
    /** v0.50.24：ACK 超时秒数（默认 300） */
    ackTimeoutS?: number;
    /**
     * v0.51.0：是否启用 Wiki 知识库。true → conf 写 WIKI_ENABLED=true 并
     * 调用 initWiki() 在 PROJECT_DIR 下建 wiki/ 骨架（含 .gitignore 维护）。
     */
    enableWiki?: boolean;
    /**
     * v0.51.6：projectDir 不存在时是否自动 mkdir -p。
     * - Console 表单创建项目：默认 true（用户填了路径就是要建）
     * - CLI `sps project init` 交互式：默认 false（用户可能打算 clone 再装）
     *   接老行为：projectDir 不存在 → 跳过 .claude/ 与 wiki/ 安装
     */
    createIfMissing?: boolean;
}
export declare function executeProjectInit(project: string, flags: Record<string, boolean>, nonInteractive?: ProjectInitOpts): Promise<void>;
/**
 * Append (or refresh) the wiki rules block in `<repo>/.claude/CLAUDE.md`.
 *
 * Idempotent: existing block is replaced in place, leaving user content above
 * and below intact. If CLAUDE.md is missing entirely, this is a no-op (we
 * don't want to silently create a fresh CLAUDE.md without the user opting in
 * via project init / doctor).
 */
export declare function appendWikiClaudeRules(repoDir: string, projectName: string): void;
export declare function ensureAttributionFile(repoDir: string): void;
//# sourceMappingURL=projectInit.d.ts.map