export declare function getVersion(): string;
export declare function readAsset(relPath: string): string;
/** Returns { 'SKILL.md': content, 'rules/cache-first.md': content, ... } */
export declare function readSkillDir(name: string): Record<string, string>;
/**
 * Merge a block (delimited by wigolo:start/wigolo:end markers) into a file.
 * Creates the file if it doesn't exist.
 * Replaces an existing block, or appends if no block present.
 *
 * Mismatched markers (one present, not both) are treated as corruption from a
 * previously interrupted write — the file is backed up to <path>.wigolo-bak
 * and the mismatched marker is stripped before the new block is appended.
 * Without this guard the next merge would eat user content between the
 * orphan marker and the freshly-written end marker.
 */
export declare function mergeBlock(filePath: string, block: string): void;
/**
 * Remove the wigolo block from a file. Returns true if a block was removed.
 *
 * If the block was the file's only content, the file is unlinked rather than
 * left as a 0-byte stub. Symlinks are never unlinked — they may resolve to
 * user content outside the file we own.
 */
export declare function removeBlock(filePath: string): boolean;
/**
 * Create or merge an MCP server entry into a JSON config file.
 * keyPath like ['mcpServers', 'wigolo'] navigates/creates nested keys.
 * Other servers in the file are preserved.
 */
export declare function mergeMcpJson(configPath: string, entry: Record<string, unknown>, keyPath: string[]): void;
/** Remove the wigolo entry from a JSON MCP config, preserving other servers. */
export declare function removeMcpJson(configPath: string, keyPath: string[]): void;
/**
 * Detect firecrawl skill directories already present in the given skills base.
 * Used to print a disambiguation notice at install time so the user understands
 * how wigolo and firecrawl skills will interact in the same agent host.
 */
export declare function detectFirecrawlSkills(skillsBase: string): string[];
/** Detect whether wigolo is installed globally and return the appropriate command. */
export declare function getMcpCommand(): {
    command: string;
    args: string[];
};
//# sourceMappingURL=utils.d.ts.map