export type JsonPrimitive = string | number | boolean | null; export type JsonArrayValue = JsonValue[]; export type JsonValue = JsonPrimitive | JsonArrayValue | JsonObjectValue; export interface JsonObjectValue { [key: string]: JsonValue | undefined; } type InitActionKind = "exists" | "create" | "append"; export type GraftMcpRuntime = "repo-local" | "daemon"; export declare class InitAction { readonly action: InitActionKind; readonly label: string; readonly detail?: string | undefined; constructor(action: InitActionKind, label: string, detail?: string | undefined); static create(label: string, detail?: string): InitAction; static append(label: string, detail?: string): InitAction; static exists(label: string, detail?: string): InitAction; } export declare class InitFailure { readonly cwd: string; readonly error: string; readonly ok = false; constructor(cwd: string, error: string); toJSON(): JsonObjectValue; } export declare class ParsedInitArgs { readonly json: boolean; readonly mcpRuntime: GraftMcpRuntime; readonly mcpRuntimeExplicit: boolean; readonly writeClaudeMcp: boolean; readonly writeClaudeHooks: boolean; readonly writeTargetGitHooks: boolean; readonly writeCodexMcp: boolean; readonly writeCursorMcp: boolean; readonly writeWindsurfMcp: boolean; readonly writeContinueMcp: boolean; readonly writeClineMcp: boolean; constructor(json: boolean, mcpRuntime: GraftMcpRuntime, mcpRuntimeExplicit: boolean, writeClaudeMcp: boolean, writeClaudeHooks: boolean, writeTargetGitHooks: boolean, writeCodexMcp: boolean, writeCursorMcp: boolean, writeWindsurfMcp: boolean, writeContinueMcp: boolean, writeClineMcp: boolean); static parse(rawArgs: readonly string[]): ParsedInitArgs; get writesAnyMcpConfig(): boolean; } export declare class GraftMcpServer { readonly runtime: GraftMcpRuntime; readonly name = "graft"; readonly command = "npx"; readonly codexStartupTimeoutSec = 120; constructor(runtime?: GraftMcpRuntime); get args(): readonly string[]; toJsonServerEntry(): JsonObjectValue; toJsonMcpConfig(): JsonObjectValue; toContinueServerEntry(): JsonObjectValue; toContinueConfig(): JsonObjectValue; toCodexTomlBlock(): string; toCodexTomlArgsLine(): string; } export declare class GraftHookCommand { readonly command: string; constructor(command: string); toJsonValue(): JsonObjectValue; } export declare class GraftHookMatcher { readonly matcher: "Read"; readonly hooks: readonly GraftHookCommand[]; constructor(matcher: "Read", hooks: readonly GraftHookCommand[]); toJsonValue(): JsonObjectValue; } export declare class GraftHooksConfig { readonly preToolUse: GraftHookMatcher; readonly postToolUse: GraftHookMatcher; constructor(preToolUse: GraftHookMatcher, postToolUse: GraftHookMatcher); toJsonValue(): JsonObjectValue; } export declare const GRAFT_MCP_SERVER: GraftMcpServer; export declare const GRAFT_HOOKS_CONFIG: GraftHooksConfig; export declare class InitResult { readonly cwd: string; readonly actions: readonly InitAction[]; readonly hooksConfig: GraftHooksConfig; readonly suggestedMcpServer: GraftMcpServer; readonly ok = true; constructor(cwd: string, actions: readonly InitAction[], hooksConfig: GraftHooksConfig, suggestedMcpServer: GraftMcpServer); toJSON(): JsonObjectValue; } export declare function isJsonObjectValue(value: unknown): value is JsonObjectValue; export declare function cloneJsonValue(value: T): T; export declare function isGraftMcpServerEntryForRuntime(value: JsonValue | undefined, runtime: GraftMcpRuntime): boolean; export {}; //# sourceMappingURL=init-model.d.ts.map