import { RuleConfig, RuleProvider, RuleGeneratorOptions } from "../types.js";
export declare class ClaudeCodeRuleProvider implements RuleProvider {
    private readonly ruleType;
    /**
     * Generates formatted content for Claude Code including metadata.
     * This content is intended to be placed within the <!-- vibe-rules Integration --> block.
     */
    generateRuleContent(config: RuleConfig, options?: RuleGeneratorOptions): string;
    /**
     * Saves a rule definition to internal storage for later use.
     * @param config - The rule configuration.
     * @returns Path where the rule definition was saved internally.
     */
    saveRule(config: RuleConfig): Promise<string>;
    /**
     * Loads a rule definition from internal storage.
     * @param name - The name of the rule to load.
     * @returns The RuleConfig if found, otherwise null.
     */
    loadRule(name: string): Promise<RuleConfig | null>;
    /**
     * Lists rule definitions available in internal storage.
     * @returns An array of rule names.
     */
    listRules(): Promise<string[]>;
    /**
     * Applies a rule by updating the <vibe-rules> section in the target CLAUDE.md.
     * If targetPath is omitted, it determines local vs global based on isGlobal option.
     */
    appendRule(name: string, targetPath?: string, isGlobal?: boolean, options?: RuleGeneratorOptions): Promise<boolean>;
    /**
     * Formats and applies a rule directly from a RuleConfig object using XML-like tags.
     * If a rule with the same name (tag) already exists, its content is updated.
     */
    appendFormattedRule(config: RuleConfig, targetPath: string, isGlobal?: boolean, options?: RuleGeneratorOptions): Promise<boolean>;
}
