/** * GitHub Issue Template Parser. * * Parses .github/ISSUE_TEMPLATE/*.yml files into JSON config. * Supports three resolution strategies: * 1. Live parse from YAML templates (if in a repo with templates) * 2. Cached config from .cleo/issue-templates.json * 3. Hardcoded fallback defaults * * @task T4454 * @epic T4454 */ /** Parsed issue template. */ export interface IssueTemplate { name: string; description: string; title: string; labels: string[]; subcommand: string; fileName: string; } /** * Parse all issue templates from available sources. * Priority: * 1. Packaged templates in the CLEO installation (for npm-installed users) * 2. Project's .github/ISSUE_TEMPLATE/ (for contributors working on CLEO) */ export declare function parseIssueTemplates(projectDir?: string): IssueTemplate[]; /** * Get template configuration - tries live parse, cache, then fallback. */ export declare function getTemplateConfig(cwd?: string): IssueTemplate[]; /** * Get the template for a specific subcommand (bug, feature, etc.). */ export declare function getTemplateForSubcommand(subcommand: string, cwd?: string): IssueTemplate | null; /** * Cache parsed templates to .cleo/issue-templates.json. */ export declare function cacheTemplates(templates: IssueTemplate[], cwd?: string): void; /** * Validate that labels referenced in issue templates are consistent. * * Collects all labels used across templates and checks that each label * appears in at least one template definition. Reports any labels that * are referenced by only one template but not defined as a known label * across the template set. This catches typos and orphaned labels * without requiring GitHub API access. */ export declare function validateLabelsExist(templates: IssueTemplate[]): { valid: boolean; missingLabels: string[]; }; //# sourceMappingURL=template-parser.d.ts.map