import { z } from 'zod';

declare const TONE_REGISTERS: readonly ["formal", "professional", "casual", "warm"];
type ToneRegister = (typeof TONE_REGISTERS)[number];
declare const TONE_ENERGIES: readonly ["calm", "measured", "energetic"];
type ToneEnergy = (typeof TONE_ENERGIES)[number];
declare const TONE_HUMORS: readonly ["none", "subtle", "dry", "warm"];
type ToneHumor = (typeof TONE_HUMORS)[number];
declare const TONE_DIRECTNESS: readonly ["diplomatic", "balanced", "direct", "blunt"];
type ToneDirectness = (typeof TONE_DIRECTNESS)[number];
declare const SENTENCE_LENGTHS: readonly ["short", "medium", "mixed"];
type SentenceLength = (typeof SENTENCE_LENGTHS)[number];
declare const EMOJI_POLICIES: readonly ["never", "sparingly", "situational"];
type EmojiPolicy = (typeof EMOJI_POLICIES)[number];
declare const SELF_REFERENCES: readonly ["first-person", "never-self-refer"];
type SelfReference = (typeof SELF_REFERENCES)[number];
declare const PERSONALITY_CHANNELS: readonly ["telegram", "email", "dashboard", "voice"];
type PersonalityChannel = (typeof PERSONALITY_CHANNELS)[number];
/** Strict, fully-specified tone — the base personality always has all four. */
interface PersonalityTone {
    register: ToneRegister;
    energy: ToneEnergy;
    humor: ToneHumor;
    directness: ToneDirectness;
}
/** Strict, fully-specified style — the base personality always has all five. */
interface PersonalityStyle {
    sentenceLength: SentenceLength;
    listsAllowed: boolean;
    emojiPolicy: EmojiPolicy;
    addressTheUserAs?: string;
    selfReference?: SelfReference;
}
/**
 * Per-channel override. Every field is optional — channels declare only what
 * they want to change vs. the base personality. `applyChannelOverride` does
 * the shallow merge.
 */
interface PartialPersonality {
    tone?: Partial<PersonalityTone>;
    style?: Partial<PersonalityStyle>;
    preferredPhrasing?: string[];
    avoidPhrasing?: string[];
    signaturePhrases?: string[];
    doList?: string[];
    dontList?: string[];
}
/**
 * A complete personality. Identity + tone + style + vocabulary + rules +
 * optional per-channel overrides + version metadata. The `version` field
 * is semver so consumers can compare ages and roll forward safely.
 */
interface PersonalityDefinition {
    name: string;
    role: string;
    about: string;
    tone: PersonalityTone;
    style: PersonalityStyle;
    preferredPhrasing: string[];
    avoidPhrasing: string[];
    signaturePhrases?: string[];
    doList: string[];
    dontList: string[];
    channels?: Partial<Record<PersonalityChannel, PartialPersonality>>;
    version: string;
    updatedAt: Date;
}
declare const personalityToneSchema: z.ZodObject<{
    register: z.ZodEnum<["formal", "professional", "casual", "warm"]>;
    energy: z.ZodEnum<["calm", "measured", "energetic"]>;
    humor: z.ZodEnum<["none", "subtle", "dry", "warm"]>;
    directness: z.ZodEnum<["diplomatic", "balanced", "direct", "blunt"]>;
}, "strip", z.ZodTypeAny, {
    register: "formal" | "professional" | "casual" | "warm";
    energy: "calm" | "measured" | "energetic";
    humor: "none" | "warm" | "subtle" | "dry";
    directness: "diplomatic" | "balanced" | "direct" | "blunt";
}, {
    register: "formal" | "professional" | "casual" | "warm";
    energy: "calm" | "measured" | "energetic";
    humor: "none" | "warm" | "subtle" | "dry";
    directness: "diplomatic" | "balanced" | "direct" | "blunt";
}>;
declare const personalityStyleSchema: z.ZodObject<{
    sentenceLength: z.ZodEnum<["short", "medium", "mixed"]>;
    listsAllowed: z.ZodBoolean;
    emojiPolicy: z.ZodEnum<["never", "sparingly", "situational"]>;
    addressTheUserAs: z.ZodOptional<z.ZodString>;
    selfReference: z.ZodOptional<z.ZodEnum<["first-person", "never-self-refer"]>>;
}, "strip", z.ZodTypeAny, {
    sentenceLength: "short" | "medium" | "mixed";
    listsAllowed: boolean;
    emojiPolicy: "never" | "sparingly" | "situational";
    addressTheUserAs?: string | undefined;
    selfReference?: "first-person" | "never-self-refer" | undefined;
}, {
    sentenceLength: "short" | "medium" | "mixed";
    listsAllowed: boolean;
    emojiPolicy: "never" | "sparingly" | "situational";
    addressTheUserAs?: string | undefined;
    selfReference?: "first-person" | "never-self-refer" | undefined;
}>;
declare const partialPersonalitySchema: z.ZodObject<{
    tone: z.ZodOptional<z.ZodObject<{
        register: z.ZodOptional<z.ZodEnum<["formal", "professional", "casual", "warm"]>>;
        energy: z.ZodOptional<z.ZodEnum<["calm", "measured", "energetic"]>>;
        humor: z.ZodOptional<z.ZodEnum<["none", "subtle", "dry", "warm"]>>;
        directness: z.ZodOptional<z.ZodEnum<["diplomatic", "balanced", "direct", "blunt"]>>;
    }, "strip", z.ZodTypeAny, {
        register?: "formal" | "professional" | "casual" | "warm" | undefined;
        energy?: "calm" | "measured" | "energetic" | undefined;
        humor?: "none" | "warm" | "subtle" | "dry" | undefined;
        directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
    }, {
        register?: "formal" | "professional" | "casual" | "warm" | undefined;
        energy?: "calm" | "measured" | "energetic" | undefined;
        humor?: "none" | "warm" | "subtle" | "dry" | undefined;
        directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
    }>>;
    style: z.ZodOptional<z.ZodObject<{
        sentenceLength: z.ZodOptional<z.ZodEnum<["short", "medium", "mixed"]>>;
        listsAllowed: z.ZodOptional<z.ZodBoolean>;
        emojiPolicy: z.ZodOptional<z.ZodEnum<["never", "sparingly", "situational"]>>;
        addressTheUserAs: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        selfReference: z.ZodOptional<z.ZodOptional<z.ZodEnum<["first-person", "never-self-refer"]>>>;
    }, "strip", z.ZodTypeAny, {
        sentenceLength?: "short" | "medium" | "mixed" | undefined;
        listsAllowed?: boolean | undefined;
        emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    }, {
        sentenceLength?: "short" | "medium" | "mixed" | undefined;
        listsAllowed?: boolean | undefined;
        emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    }>>;
    preferredPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    avoidPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    signaturePhrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    doList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    dontList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    tone?: {
        register?: "formal" | "professional" | "casual" | "warm" | undefined;
        energy?: "calm" | "measured" | "energetic" | undefined;
        humor?: "none" | "warm" | "subtle" | "dry" | undefined;
        directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
    } | undefined;
    style?: {
        sentenceLength?: "short" | "medium" | "mixed" | undefined;
        listsAllowed?: boolean | undefined;
        emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    } | undefined;
    preferredPhrasing?: string[] | undefined;
    avoidPhrasing?: string[] | undefined;
    signaturePhrases?: string[] | undefined;
    doList?: string[] | undefined;
    dontList?: string[] | undefined;
}, {
    tone?: {
        register?: "formal" | "professional" | "casual" | "warm" | undefined;
        energy?: "calm" | "measured" | "energetic" | undefined;
        humor?: "none" | "warm" | "subtle" | "dry" | undefined;
        directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
    } | undefined;
    style?: {
        sentenceLength?: "short" | "medium" | "mixed" | undefined;
        listsAllowed?: boolean | undefined;
        emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    } | undefined;
    preferredPhrasing?: string[] | undefined;
    avoidPhrasing?: string[] | undefined;
    signaturePhrases?: string[] | undefined;
    doList?: string[] | undefined;
    dontList?: string[] | undefined;
}>;
declare const personalityDefinitionSchema: z.ZodObject<{
    name: z.ZodString;
    role: z.ZodString;
    about: z.ZodString;
    tone: z.ZodObject<{
        register: z.ZodEnum<["formal", "professional", "casual", "warm"]>;
        energy: z.ZodEnum<["calm", "measured", "energetic"]>;
        humor: z.ZodEnum<["none", "subtle", "dry", "warm"]>;
        directness: z.ZodEnum<["diplomatic", "balanced", "direct", "blunt"]>;
    }, "strip", z.ZodTypeAny, {
        register: "formal" | "professional" | "casual" | "warm";
        energy: "calm" | "measured" | "energetic";
        humor: "none" | "warm" | "subtle" | "dry";
        directness: "diplomatic" | "balanced" | "direct" | "blunt";
    }, {
        register: "formal" | "professional" | "casual" | "warm";
        energy: "calm" | "measured" | "energetic";
        humor: "none" | "warm" | "subtle" | "dry";
        directness: "diplomatic" | "balanced" | "direct" | "blunt";
    }>;
    style: z.ZodObject<{
        sentenceLength: z.ZodEnum<["short", "medium", "mixed"]>;
        listsAllowed: z.ZodBoolean;
        emojiPolicy: z.ZodEnum<["never", "sparingly", "situational"]>;
        addressTheUserAs: z.ZodOptional<z.ZodString>;
        selfReference: z.ZodOptional<z.ZodEnum<["first-person", "never-self-refer"]>>;
    }, "strip", z.ZodTypeAny, {
        sentenceLength: "short" | "medium" | "mixed";
        listsAllowed: boolean;
        emojiPolicy: "never" | "sparingly" | "situational";
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    }, {
        sentenceLength: "short" | "medium" | "mixed";
        listsAllowed: boolean;
        emojiPolicy: "never" | "sparingly" | "situational";
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    }>;
    preferredPhrasing: z.ZodArray<z.ZodString, "many">;
    avoidPhrasing: z.ZodArray<z.ZodString, "many">;
    signaturePhrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    doList: z.ZodArray<z.ZodString, "many">;
    dontList: z.ZodArray<z.ZodString, "many">;
    channels: z.ZodOptional<z.ZodObject<{
        telegram: z.ZodOptional<z.ZodObject<{
            tone: z.ZodOptional<z.ZodObject<{
                register: z.ZodOptional<z.ZodEnum<["formal", "professional", "casual", "warm"]>>;
                energy: z.ZodOptional<z.ZodEnum<["calm", "measured", "energetic"]>>;
                humor: z.ZodOptional<z.ZodEnum<["none", "subtle", "dry", "warm"]>>;
                directness: z.ZodOptional<z.ZodEnum<["diplomatic", "balanced", "direct", "blunt"]>>;
            }, "strip", z.ZodTypeAny, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }>>;
            style: z.ZodOptional<z.ZodObject<{
                sentenceLength: z.ZodOptional<z.ZodEnum<["short", "medium", "mixed"]>>;
                listsAllowed: z.ZodOptional<z.ZodBoolean>;
                emojiPolicy: z.ZodOptional<z.ZodEnum<["never", "sparingly", "situational"]>>;
                addressTheUserAs: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                selfReference: z.ZodOptional<z.ZodOptional<z.ZodEnum<["first-person", "never-self-refer"]>>>;
            }, "strip", z.ZodTypeAny, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }>>;
            preferredPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            avoidPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            signaturePhrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            doList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            dontList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }>>;
        email: z.ZodOptional<z.ZodObject<{
            tone: z.ZodOptional<z.ZodObject<{
                register: z.ZodOptional<z.ZodEnum<["formal", "professional", "casual", "warm"]>>;
                energy: z.ZodOptional<z.ZodEnum<["calm", "measured", "energetic"]>>;
                humor: z.ZodOptional<z.ZodEnum<["none", "subtle", "dry", "warm"]>>;
                directness: z.ZodOptional<z.ZodEnum<["diplomatic", "balanced", "direct", "blunt"]>>;
            }, "strip", z.ZodTypeAny, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }>>;
            style: z.ZodOptional<z.ZodObject<{
                sentenceLength: z.ZodOptional<z.ZodEnum<["short", "medium", "mixed"]>>;
                listsAllowed: z.ZodOptional<z.ZodBoolean>;
                emojiPolicy: z.ZodOptional<z.ZodEnum<["never", "sparingly", "situational"]>>;
                addressTheUserAs: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                selfReference: z.ZodOptional<z.ZodOptional<z.ZodEnum<["first-person", "never-self-refer"]>>>;
            }, "strip", z.ZodTypeAny, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }>>;
            preferredPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            avoidPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            signaturePhrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            doList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            dontList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }>>;
        dashboard: z.ZodOptional<z.ZodObject<{
            tone: z.ZodOptional<z.ZodObject<{
                register: z.ZodOptional<z.ZodEnum<["formal", "professional", "casual", "warm"]>>;
                energy: z.ZodOptional<z.ZodEnum<["calm", "measured", "energetic"]>>;
                humor: z.ZodOptional<z.ZodEnum<["none", "subtle", "dry", "warm"]>>;
                directness: z.ZodOptional<z.ZodEnum<["diplomatic", "balanced", "direct", "blunt"]>>;
            }, "strip", z.ZodTypeAny, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }>>;
            style: z.ZodOptional<z.ZodObject<{
                sentenceLength: z.ZodOptional<z.ZodEnum<["short", "medium", "mixed"]>>;
                listsAllowed: z.ZodOptional<z.ZodBoolean>;
                emojiPolicy: z.ZodOptional<z.ZodEnum<["never", "sparingly", "situational"]>>;
                addressTheUserAs: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                selfReference: z.ZodOptional<z.ZodOptional<z.ZodEnum<["first-person", "never-self-refer"]>>>;
            }, "strip", z.ZodTypeAny, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }>>;
            preferredPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            avoidPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            signaturePhrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            doList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            dontList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }>>;
        voice: z.ZodOptional<z.ZodObject<{
            tone: z.ZodOptional<z.ZodObject<{
                register: z.ZodOptional<z.ZodEnum<["formal", "professional", "casual", "warm"]>>;
                energy: z.ZodOptional<z.ZodEnum<["calm", "measured", "energetic"]>>;
                humor: z.ZodOptional<z.ZodEnum<["none", "subtle", "dry", "warm"]>>;
                directness: z.ZodOptional<z.ZodEnum<["diplomatic", "balanced", "direct", "blunt"]>>;
            }, "strip", z.ZodTypeAny, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }, {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            }>>;
            style: z.ZodOptional<z.ZodObject<{
                sentenceLength: z.ZodOptional<z.ZodEnum<["short", "medium", "mixed"]>>;
                listsAllowed: z.ZodOptional<z.ZodBoolean>;
                emojiPolicy: z.ZodOptional<z.ZodEnum<["never", "sparingly", "situational"]>>;
                addressTheUserAs: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                selfReference: z.ZodOptional<z.ZodOptional<z.ZodEnum<["first-person", "never-self-refer"]>>>;
            }, "strip", z.ZodTypeAny, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }, {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            }>>;
            preferredPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            avoidPhrasing: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            signaturePhrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            doList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            dontList: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }, {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        voice?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        telegram?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        email?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        dashboard?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
    }, {
        voice?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        telegram?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        email?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        dashboard?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
    }>>;
    version: z.ZodString;
    updatedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
    name: string;
    tone: {
        register: "formal" | "professional" | "casual" | "warm";
        energy: "calm" | "measured" | "energetic";
        humor: "none" | "warm" | "subtle" | "dry";
        directness: "diplomatic" | "balanced" | "direct" | "blunt";
    };
    style: {
        sentenceLength: "short" | "medium" | "mixed";
        listsAllowed: boolean;
        emojiPolicy: "never" | "sparingly" | "situational";
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    };
    preferredPhrasing: string[];
    avoidPhrasing: string[];
    doList: string[];
    dontList: string[];
    role: string;
    about: string;
    version: string;
    updatedAt: Date;
    signaturePhrases?: string[] | undefined;
    channels?: {
        voice?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        telegram?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        email?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        dashboard?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
    } | undefined;
}, {
    name: string;
    tone: {
        register: "formal" | "professional" | "casual" | "warm";
        energy: "calm" | "measured" | "energetic";
        humor: "none" | "warm" | "subtle" | "dry";
        directness: "diplomatic" | "balanced" | "direct" | "blunt";
    };
    style: {
        sentenceLength: "short" | "medium" | "mixed";
        listsAllowed: boolean;
        emojiPolicy: "never" | "sparingly" | "situational";
        addressTheUserAs?: string | undefined;
        selfReference?: "first-person" | "never-self-refer" | undefined;
    };
    preferredPhrasing: string[];
    avoidPhrasing: string[];
    doList: string[];
    dontList: string[];
    role: string;
    about: string;
    version: string;
    updatedAt: Date;
    signaturePhrases?: string[] | undefined;
    channels?: {
        voice?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        telegram?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        email?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
        dashboard?: {
            tone?: {
                register?: "formal" | "professional" | "casual" | "warm" | undefined;
                energy?: "calm" | "measured" | "energetic" | undefined;
                humor?: "none" | "warm" | "subtle" | "dry" | undefined;
                directness?: "diplomatic" | "balanced" | "direct" | "blunt" | undefined;
            } | undefined;
            style?: {
                sentenceLength?: "short" | "medium" | "mixed" | undefined;
                listsAllowed?: boolean | undefined;
                emojiPolicy?: "never" | "sparingly" | "situational" | undefined;
                addressTheUserAs?: string | undefined;
                selfReference?: "first-person" | "never-self-refer" | undefined;
            } | undefined;
            preferredPhrasing?: string[] | undefined;
            avoidPhrasing?: string[] | undefined;
            signaturePhrases?: string[] | undefined;
            doList?: string[] | undefined;
            dontList?: string[] | undefined;
        } | undefined;
    } | undefined;
}>;
interface CalibrationRecord {
    type: "CALIBRATION";
    scope: string;
    domain?: string | null;
    /**
     * The nudge itself. `dimension` says which tone/style axis the user
     * corrected; `direction` says which way to nudge. Free-text `note` is
     * surfaced verbatim to Claude when present.
     */
    payload: {
        dimension: CalibrationDimension;
        direction: CalibrationDirection;
        note?: string;
    };
    createdAt: Date;
}
declare const CALIBRATION_DIMENSIONS: readonly ["register", "energy", "humor", "directness", "sentenceLength", "verbosity", "emojiPolicy"];
type CalibrationDimension = (typeof CALIBRATION_DIMENSIONS)[number];
/**
 * Direction is intentionally coarse — the calibration system doesn't try to
 * encode "go from professional to warm by 30%". It says "less formal" and
 * the layer below maps that to the next step on the register scale.
 */
declare const CALIBRATION_DIRECTIONS: readonly ["less", "more", "softer", "sharper"];
type CalibrationDirection = (typeof CALIBRATION_DIRECTIONS)[number];

export { CALIBRATION_DIMENSIONS as C, EMOJI_POLICIES as E, PERSONALITY_CHANNELS as P, SELF_REFERENCES as S, TONE_DIRECTNESS as T, CALIBRATION_DIRECTIONS as a, type CalibrationDimension as b, type CalibrationDirection as c, type CalibrationRecord as d, type EmojiPolicy as e, type PartialPersonality as f, type PersonalityChannel as g, type PersonalityDefinition as h, type PersonalityStyle as i, type PersonalityTone as j, SENTENCE_LENGTHS as k, type SelfReference as l, type SentenceLength as m, TONE_ENERGIES as n, TONE_HUMORS as o, TONE_REGISTERS as p, type ToneDirectness as q, type ToneEnergy as r, type ToneHumor as s, type ToneRegister as t, partialPersonalitySchema as u, personalityDefinitionSchema as v, personalityStyleSchema as w, personalityToneSchema as x };
