export type ProjectScaffoldMode = 'spec-driven' | 'quick' | 'import';
export interface ScaffoldProjectOptions {
    repoRoot: string;
    projectName: string;
    mode?: ProjectScaffoldMode;
    force?: boolean;
    setActive?: boolean;
    refreshDashboard?: boolean;
    projectLog?: boolean;
    /**
     * Commit the freshly scaffolded project directory so the artifact baseline is
     * git-tracked from t=0. Opt-in (default false) so library callers that manage
     * their own commits (e.g. the project-split flow) are unaffected; only the
     * `oat project new` command enables it by default.
     */
    commit?: boolean;
    env?: NodeJS.ProcessEnv;
    home?: string;
    today?: string;
    nowUtc?: string;
    refreshDashboardCallback?: (repoRoot: string) => void | Promise<void>;
}
/**
 * Classified outcome of the scoped scaffold commit. Distinguishing the skip
 * reasons (and `failed`) lets the CLI surface accurate, distinct messaging
 * instead of collapsing every non-commit into a single benign "skipped" line.
 */
export type CommitScaffoldStatus = 'committed' | 'skipped_disabled' | 'skipped_no_worktree' | 'skipped_nothing' | 'failed';
export interface ScaffoldProjectResult {
    mode: ProjectScaffoldMode;
    projectsRoot: string;
    projectPath: string;
    createdFiles: string[];
    skippedFiles: string[];
    activePointerUpdated: boolean;
    dashboardRefreshed: boolean;
    committed: boolean;
    commitSha?: string;
    commitStatus: CommitScaffoldStatus;
    commitError?: string;
}
export declare function scaffoldProject(options: ScaffoldProjectOptions): Promise<ScaffoldProjectResult>;
//# sourceMappingURL=scaffold.d.ts.map