/** * Persona element class implementing IElement interface. * Represents a behavioral profile that defines AI personality and interaction style. */ import { BaseElement } from '../elements/BaseElement.js'; import { IElement, IElementMetadata, ElementValidationResult } from '../types/elements/index.js'; import { ElementType } from '../portfolio/types.js'; import { PersonaMetadata } from '../types/persona.js'; import { MetadataService } from '../services/MetadataService.js'; export interface PersonaElementMetadata extends IElementMetadata { type?: ElementType.PERSONA; unique_id?: string; triggers?: string[]; category?: string; age_rating?: 'all' | '13+' | '18+'; content_flags?: string[]; ai_generated?: boolean; generation_method?: 'human' | 'ChatGPT' | 'Claude' | 'hybrid'; price?: string; revenue_split?: string; license?: string; created_date?: string; } export declare class PersonaElement extends BaseElement implements IElement { filename: string; metadata: PersonaElementMetadata; /** * Backward compatibility: provide unique_id as an alias for id */ get unique_id(): string; set unique_id(value: string); constructor(metadata: Partial, instructions: string | undefined, filename: string | undefined, metadataService: MetadataService, content?: string); /** * Create PersonaElement from legacy Persona interface */ static fromLegacy(legacyPersona: { metadata: PersonaMetadata; content: string; filename: string; unique_id: string; }, metadataService: MetadataService): PersonaElement; /** * Convert to legacy Persona interface for backward compatibility */ toLegacy(): { metadata: PersonaMetadata; content: string; filename: string; unique_id: string; }; /** * Persona-specific validation */ validate(): ElementValidationResult; /** * Get content for serialization. * Returns instructions as the primary body text (v1 compat). * v2 format writes instructions to YAML frontmatter and content as body. */ protected getContent(): string; /** * Serialize persona to markdown format * Refactored to use base class pattern with getContent() */ serialize(): string; /** * Serialize to JSON format for internal use and testing */ serializeToJSON(): string; /** * Deserialize persona from markdown format */ deserialize(data: string): void; /** * Persona activation lifecycle */ activate(): Promise; /** * Persona deactivation lifecycle */ deactivate(): Promise; } //# sourceMappingURL=PersonaElement.d.ts.map