import type { ConfigMergeMutation, ConfigPruneMutation, ConfigTransformMutation, ConfigObject, ValueResolver, MutationOptions } from "../types.js"; export interface MergeOptions { /** Target file path (must start with ~) */ target: ValueResolver; /** Value to merge into the config file */ value: ValueResolver; /** Optional explicit format override */ format?: "json" | "toml" | "yaml"; /** Optional prune by prefix before merging (TOML) */ pruneByPrefix?: Record; /** Optional human-readable label for logging */ label?: string; } export interface PruneOptions { /** Target file path (must start with ~) */ target: ValueResolver; /** Shape to prune from the config file */ shape: ValueResolver; /** Optional explicit format override */ format?: "json" | "toml" | "yaml"; /** Optional guard - only prune if predicate returns true */ onlyIf?: (doc: ConfigObject, ctx: MutationOptions) => boolean; /** Optional human-readable label for logging */ label?: string; } export interface TransformOptions { /** Target file path (must start with ~) */ target: ValueResolver; /** Optional explicit format override */ format?: "json" | "toml" | "yaml"; /** Transform function - receives parsed content, returns transformed content */ transform: (content: ConfigObject, ctx: MutationOptions) => { content: ConfigObject | null; changed: boolean; }; /** Optional human-readable label for logging */ label?: string; } declare function merge(options: MergeOptions): ConfigMergeMutation; declare function prune(options: PruneOptions): ConfigPruneMutation; declare function transform(options: TransformOptions): ConfigTransformMutation; export declare const configMutation: { merge: typeof merge; prune: typeof prune; transform: typeof transform; }; export {};