export interface IPersona {
    readonly id: string;
    readonly name: string;
    readonly description: string;
    readonly systemPrompt: string;
    readonly tags: string[];
    readonly version: string;
    hasTag(tag: string): boolean;
}
export interface PersonaConfig {
    temperature?: number;
    maxTokens?: number;
    customInstructions?: string[];
    [key: string]: any;
}
export declare class BasePersona implements IPersona {
    readonly id: string;
    readonly name: string;
    readonly description: string;
    readonly systemPrompt: string;
    readonly tags: string[];
    readonly version: string;
    constructor(id: string, name: string, description: string, systemPrompt: string, tags?: string[], version?: string);
    getCustomizedPrompt(config?: PersonaConfig): string;
    hasTag(tag: string): boolean;
    toJSON(): Record<string, any>;
}
export declare class PersonaManager {
    private personas;
    private configs;
    register(persona: IPersona, config?: PersonaConfig): void;
    get(id: string): IPersona | undefined;
    getConfig(id: string): PersonaConfig | undefined;
    updateConfig(id: string, config: PersonaConfig): void;
    list(): IPersona[];
    findByTag(tag: string): IPersona[];
    remove(id: string): boolean;
    exists(id: string): boolean;
    getSystemPrompt(id: string): string | undefined;
}
export declare const globalPersonaManager: PersonaManager;
//# sourceMappingURL=base.d.ts.map