import { InitPresetId } from "./outfitter-11r5ny73.js"; import { TargetDefinition } from "./outfitter-gsjbcta2.js"; import { PostScaffoldResult } from "./outfitter-hcexcvxe.js"; import { Result } from "@outfitter/contracts"; import { AddBlockResult } from "@outfitter/tooling"; /** * Validates an `--example` flag value against the preset's available examples. * @returns The validated example overlay directory name, or an error message. */ declare function validateExample(preset: string, example: string): Result; /** Whether the project is a standalone package or a workspace with nested packages. */ type InitStructure = "single" | "workspace"; /** Fully resolved inputs for the init execution pipeline, after interactive/non-interactive resolution. */ interface ResolvedInitExecutionInput { readonly binName?: string | undefined; readonly blocksOverride?: readonly string[]; /** Example overlay name (e.g., "todo" for cli, "files" for mcp). */ readonly example?: string | undefined; /** Resolved example overlay directory name (e.g., "_examples/cli-todo"). Set by pipeline after validation. */ readonly exampleOverlayDir?: string | undefined; readonly includeTooling: boolean; readonly local: boolean; readonly packageName: string; readonly preset: InitPresetId; readonly rootDir: string; readonly structure: InitStructure; readonly workspaceName?: string | undefined; } /** Behavioral flags controlling how the init pipeline executes (dry-run, force, skip steps). */ interface InitExecutionOptions { readonly dryRun: boolean; readonly force: boolean; readonly installTimeout: number; readonly skipCommit: boolean; readonly skipGit: boolean; readonly skipInstall: boolean; } /** Output of a successful init pipeline run, including scaffold results and post-scaffold status. */ interface InitExecutionResult { readonly blocksAdded?: AddBlockResult | undefined; readonly dryRunPlan?: { readonly operations: readonly unknown[]; readonly summary: Record; } | undefined; readonly packageName: string; readonly postScaffold: PostScaffoldResult; readonly preset: InitPresetId; readonly projectDir: string; readonly rootDir: string; readonly structure: InitStructure; } /** * Runs the full init pipeline: validates inputs, scaffolds the project structure, * executes the preset plan, and performs post-scaffold steps (install, git init). * @param input - Resolved user inputs (preset, structure, package name, etc.) * @param target - Target definition from the preset registry * @param options - Execution flags (dry-run, force, skip steps) * @returns The init result on success, or an error message string on failure */ declare function executeInitPipeline(input: ResolvedInitExecutionInput, target: TargetDefinition, options: InitExecutionOptions): Promise>; export { validateExample, InitStructure, ResolvedInitExecutionInput, InitExecutionOptions, InitExecutionResult, executeInitPipeline };