/** * Rule type definitions for the vibe-rules utility */ export type * from "./schemas.js"; export interface RuleConfig { name: string; content: string; description?: string; } export interface StoredRuleConfig { name: string; content: string; description?: string; metadata?: RuleGeneratorOptions; } export declare const RuleType: { readonly CURSOR: "cursor"; readonly WINDSURF: "windsurf"; readonly CLAUDE_CODE: "claude-code"; readonly GEMINI: "gemini"; readonly CODEX: "codex"; readonly AMP: "amp"; readonly CLINERULES: "clinerules"; readonly ROO: "roo"; readonly ZED: "zed"; readonly UNIFIED: "unified"; readonly VSCODE: "vscode"; readonly CUSTOM: "custom"; }; export type RuleTypeArray = (typeof RuleType)[keyof typeof RuleType][]; export type RuleType = (typeof RuleType)[keyof typeof RuleType]; export interface RuleProvider { /** * Creates a new rule file with the given content */ saveRule(config: RuleConfig, options?: RuleGeneratorOptions): Promise; /** * Loads a rule from storage */ loadRule(name: string): Promise; /** * Lists all available rules */ listRules(): Promise; /** * Appends a rule to an existing file */ appendRule(name: string, targetPath?: string): Promise; /** * Formats and appends a rule directly from a RuleConfig object */ appendFormattedRule(config: RuleConfig, targetPath: string, isGlobal?: boolean, options?: RuleGeneratorOptions): Promise; /** * Generates formatted rule content with editor-specific formatting */ generateRuleContent(config: RuleConfig, options?: RuleGeneratorOptions): string; /** * Removes a rule from editor configuration */ removeRule(name: string, targetPath?: string, isGlobal?: boolean): Promise; } export interface RuleGeneratorOptions { description?: string; isGlobal?: boolean; alwaysApply?: boolean; globs?: string | string[]; debug?: boolean; }