import type { Codec, LauncherValidationError, ProcessLaunchConfig, ProcessLauncherDefinition, UiLauncherDefinition } from "@leitwerk-dev/process-sdk"; export type RepositoryChangeLaunchKind = "requested_change" | "imported_plan"; export interface RepositoryChangeParamsBase { repoLocator: string; baseBranch: string; workBranch: string; prompt: string; launchKind: RepositoryChangeLaunchKind; importedPlanMarkdown?: string; } export type RepositoryChangeLaunchParams> = TExtra & Omit & ({ launchKind: "requested_change"; } | { launchKind: "imported_plan"; importedPlanMarkdown: string; }); export interface NormalizedRepositoryChangeParamsInput { launchKind: string; repoLocator: string; baseBranch: string; workBranch: string; prompt: string; importedPlanMarkdown: string; } export declare function repositoryChangeParamsRecord(value: unknown, displayName: string): Record; export declare function normalizeRepositoryChangeParamsInput(value: unknown, displayName: string): NormalizedRepositoryChangeParamsInput; export declare function createRepositoryChangeParamsCodec(input: { displayName: string; normalize(value: unknown): NormalizedRepositoryChangeParamsInput & Omit; }): Codec; export interface RepositoryChangeLaunchPlannerInput { input: Record; metadata?: Record | null; } export type RepositoryChangeLaunchResolution = { ok: true; launchConfig: ProcessLaunchConfig; } | { ok: false; errors: readonly LauncherValidationError[]; }; export interface RepositoryChangeLaunchPlanner { plan(input: RepositoryChangeLaunchPlannerInput): RepositoryChangeLaunchResolution; } export declare function formatRepositoryChangeLaunchErrors(errors: readonly LauncherValidationError[]): string; export declare function createRepositoryChangeLaunchPlanner(config: { processId: string; normalize(input: Record): T & { importedPlanMarkdown?: string; }; validateRepoLocator(repoLocator: string): string | null; validate?(input: Record, params: T): readonly LauncherValidationError[]; prepare?(params: T): T; deferWithoutWorkBranch?: boolean; }): RepositoryChangeLaunchPlanner; export declare function createRepositoryChangeUiLauncher(config: { id: string; formId: string; title: string; workBranchDescription: string; sshCredentials?: boolean; resolveRelaunchInput?: UiLauncherDefinition["resolveRelaunchInput"]; resolveLaunchConfig: UiLauncherDefinition["resolveLaunchConfig"]; }): ProcessLauncherDefinition; //# sourceMappingURL=repository-change-launch.d.ts.map