/**
 * Core abstraction: CriticPersona
 *
 * Defines who the critic is - their tone, expertise, and prompt template.
 * Personas are reusable across domains.
 */
import { CritiqueDomain } from './critique-domain.js';
export type CriticTone = 'brutal' | 'constructive' | 'balanced' | 'pedagogical';
export type ExpertiseLevel = 'junior' | 'mid' | 'senior' | 'principal' | 'architect';
export interface ModelPreferences {
    claude?: string;
    codex?: string;
    gemini?: string;
}
/**
 * A template string with variable substitution
 */
export declare class PromptTemplate {
    private template;
    constructor(template: string);
    /**
     * Render the template with domain-specific variables
     */
    render(domain: CritiqueDomain, additionalVars?: Record<string, any>): string;
    /**
     * Get the raw template string
     */
    getRaw(): string;
}
export interface CriticPersona {
    /** Unique identifier for this persona */
    id: string;
    /** Human-readable name */
    name: string;
    /** Which domain(s) this persona critiques */
    domain?: CritiqueDomain;
    /** The system prompt template */
    promptTemplate: PromptTemplate;
    /** Tone of the critique */
    tone: CriticTone;
    /** Level of expertise */
    expertise: ExpertiseLevel;
    /** Preferred models for this persona */
    preferredModels?: ModelPreferences;
    /** Additional persona characteristics */
    characteristics?: {
        background?: string;
        specialization?: string;
        years_experience?: number;
    };
}
/**
 * Helper to create a persona for a specific domain
 */
export declare function bindPersonaToDomain(persona: CriticPersona, domain: CritiqueDomain): CriticPersona;
/**
 * Pre-built prompt templates for common personas
 */
export declare const PromptTemplates: {
    /**
     * Brutal critic - finds every flaw, no mercy
     */
    BRUTAL: PromptTemplate;
    /**
     * Constructive critic - identifies issues but provides solutions
     */
    CONSTRUCTIVE: PromptTemplate;
    /**
     * Balanced critic - objective analysis with pros and cons
     */
    BALANCED: PromptTemplate;
    /**
     * Pedagogical critic - teaches through critique
     */
    PEDAGOGICAL: PromptTemplate;
};
//# sourceMappingURL=critic-persona.d.ts.map