/**
 * GitHub Issue Template Parser (Core Logic)
 *
 * Native TypeScript implementation for parsing GitHub issue template YAML files
 * and producing structured JSON config. The CLI
 * can consume the generated config at .cleo/issue-templates.json.
 *
 * Supports: parseIssueTemplates, getTemplateForSubcommand, generateTemplateConfig, validateLabels
 *
 * @task T5705
 * @epic T5701
 */
/**
 * A single section/field within an issue template.
 */
export interface TemplateSection {
    id: string;
    type: 'textarea' | 'dropdown' | 'input' | 'markdown' | 'checkboxes';
    label: string;
    required: boolean;
    options?: string[];
    placeholder?: string;
}
/**
 * A parsed issue template.
 */
export interface IssueTemplate {
    filename: string;
    subcommand: string;
    name: string;
    titlePrefix: string;
    labels: string[];
    sections: TemplateSection[];
}
/**
 * The full template config output.
 */
export interface TemplateConfig {
    templates: IssueTemplate[];
    generatedAt: string;
    sourceDir: string;
}
/**
 * Result type for template parser operations.
 */
export interface TemplateResult<T> {
    success: boolean;
    data?: T;
    error?: {
        code: string;
        message: string;
        details?: Record<string, unknown>;
    };
}
/**
 * Parse all templates from the repo's .github/ISSUE_TEMPLATE/ directory.
 *
 * Reads YAML files directly (live parse, no caching).
 * Excludes config.yml which is the GitHub template chooser config.
 */
export declare function parseIssueTemplates(projectRoot: string): TemplateResult<TemplateConfig>;
/**
 * Get template config for a specific subcommand (bug/feature/help).
 *
 * Performs a live parse and filters to the matching template.
 */
export declare function getTemplateForSubcommand(projectRoot: string, subcommand: string): TemplateResult<IssueTemplate>;
/**
 * Generate and cache the config as .cleo/issue-templates.json.
 *
 * Performs a live parse, then writes the result using writeJsonFileAtomic.
 */
export declare function generateTemplateConfig(projectRoot: string): Promise<TemplateResult<TemplateConfig>>;
/**
 * Validate that labels exist on a GitHub repo.
 *
 * Compares the template labels against a list of known repo labels.
 * Returns which labels exist and which are missing.
 */
export declare function validateLabels(labels: string[], repoLabels: string[]): TemplateResult<{
    existing: string[];
    missing: string[];
}>;
//# sourceMappingURL=parser.d.ts.map