import { RuleType } from "../types.js";
export declare const RULES_BASE_DIR: string;
export declare const CLAUDE_HOME_DIR: string;
export declare const CODEX_HOME_DIR: string;
export declare const ZED_RULES_FILE = ".rules";
/**
 * Get the common rules directory path
 */
export declare function getCommonRulesDir(): string;
/**
 * Get path to store internal rule definitions based on rule type
 * (Not the actual target paths for IDEs)
 */
export declare function getInternalRuleStoragePath(ruleType: RuleType, ruleName: string): string;
/**
 * Get the expected file path for a rule based on its type and context (local/global).
 * This now returns the actual path where the rule should exist for the IDE/tool.
 * The 'isGlobal' flag determines if we should use the home directory path.
 */
export declare function getRulePath(ruleType: RuleType, ruleName: string, // ruleName might not be relevant for some types like Claude/Codex global
isGlobal?: boolean, projectRoot?: string): string;
/**
 * Get the default target path (directory or file) where a rule type is typically applied.
 * This is used by commands like 'apply' if no specific target is given.
 * Note: This might overlap with getRulePath for some types.
 * Returns potential paths based on convention.
 */
export declare function getDefaultTargetPath(ruleType: RuleType, isGlobalHint?: boolean): string;
/**
 * Ensures that a specific directory exists, creating it if necessary.
 *
 * @param dirPath The absolute or relative path to the directory to ensure.
 */
export declare function ensureDirectoryExists(dirPath: string): void;
/**
 * Checks if the configuration for a given editor type exists.
 * This is used to prevent the 'install' command from creating config files/dirs.
 * @param ruleType The editor type to check.
 * @param isGlobal Whether to check the global or local path.
 * @param projectRoot The root directory of the project.
 * @returns A promise that resolves to true if the configuration exists, false otherwise.
 */
export declare function editorConfigExists(ruleType: RuleType, isGlobal: boolean, projectRoot?: string): Promise<boolean>;
/**
 * Convert a rule name to a filename-safe slug.
 */
export declare function slugifyRuleName(name: string): string;
