/**
 * Structured brand voice rules — parsed from profile frontmatter and used for
 * deterministic alignment scoring and the Phase 3 admin editors.
 */
export type ContractionsRule = 'allow' | 'avoid' | 'require';
export type ExclamationRule = 'allow' | 'avoid' | 'forbid';
export type EmojiRule = 'allow' | 'sparingly' | 'forbid';
export type CaseRule = 'sentence' | 'title';
export type NumbersRule = 'spell_all' | 'numerals_all' | 'numerals_for_10_plus';
export type SpellingRule = 'us' | 'uk';
export interface BrandVoiceToneScales {
    formalCasual: number;
    seriousPlayful: number;
    conciseDetailed: number;
    reservedBold: number;
    readingLevel: number;
}
export interface BrandVoiceMechanics {
    oxfordComma: boolean;
    contractions: ContractionsRule;
    exclamationPoints: ExclamationRule;
    emoji: EmojiRule;
    caseHeadlines: CaseRule;
    caseButtons: CaseRule;
    numbers: NumbersRule;
    serialSpelling: SpellingRule;
}
export interface BrandVoiceBannedTerm {
    term: string;
    useInstead: string;
}
export interface BrandVoiceChannelRule {
    id: string;
    label: string;
    maxChars?: number;
    maxHeadlineChars?: number;
    maxDescriptionChars?: number;
    note?: string;
}
export interface BrandVoiceWorkedExample {
    offBrand: string;
    onBrand: string;
    why: string;
}
export interface BrandVoiceStructuredProfile {
    tone: BrandVoiceToneScales;
    mechanics: BrandVoiceMechanics;
    bannedTerms: BrandVoiceBannedTerm[];
    preferredTerms: string[];
    avoidPatterns: string[];
    channels: BrandVoiceChannelRule[];
    workedExamples: BrandVoiceWorkedExample[];
}
export interface BrandAlignmentIssue {
    id: string;
    severity: 'error' | 'warning' | 'info';
    message: string;
    suggestion?: string;
}
export interface BrandAlignmentDimension {
    name: string;
    score: number;
    feedback: string;
}
export interface BrandAlignmentScoreResult {
    score: number;
    channel?: string;
    issues: BrandAlignmentIssue[];
    dimensions: BrandAlignmentDimension[];
}
export declare const BRAND_VOICE_CHANNEL_PRESETS: Array<{
    id: string;
    label: string;
}>;
declare const MAX_WORKED_EXAMPLES = 10;
declare const MAX_BANNED_TERMS = 40;
declare const MAX_PREFERRED_TERMS = 40;
declare const MAX_AVOID_PATTERNS = 20;
export declare function defaultStructuredProfile(): BrandVoiceStructuredProfile;
/** Parse machine-readable rules from a profile markdown document. */
export declare function parseStructuredProfile(document: string): BrandVoiceStructuredProfile;
/** Apply structured rule edits back into the profile markdown document. */
export declare function applyStructuredProfileToDocument(document: string, structured: BrandVoiceStructuredProfile): string;
/** Deterministic alignment score using frontmatter rules. */
export declare function scoreBrandAlignment(content: string, structured: BrandVoiceStructuredProfile, channelId?: string): BrandAlignmentScoreResult;
export { MAX_BANNED_TERMS, MAX_PREFERRED_TERMS, MAX_AVOID_PATTERNS, MAX_WORKED_EXAMPLES };
//# sourceMappingURL=brand-voice-structured.d.ts.map