/** * ConversationSyncStrategy - Handles synchronization of Conversation history * * This strategy implements ISyncStrategy for the Conversations resource. * Note: This is a pull-only strategy as conversations are read-only. * * Key responsibilities: * - Pull conversation history from NEWO platform * - Process user personas and their acts * - Save conversations to YAML format */ import type { ISyncStrategy, PullOptions, PullResult, PushResult, ChangeItem, ValidationResult, StatusSummary } from './ISyncStrategy.js'; import type { CustomerConfig, ILogger } from '../../resources/common/types.js'; import type { AxiosInstance } from 'axios'; import type { UserPersona, ProcessedPersona } from '../../../types.js'; /** * Local conversation data for storage */ export interface LocalConversationData { personas: ProcessedPersona[]; totalActs: number; } /** * API client factory type */ export type ApiClientFactory = (customer: CustomerConfig, verbose: boolean) => Promise; /** * ConversationSyncStrategy - Handles conversation synchronization */ export declare class ConversationSyncStrategy implements ISyncStrategy { private apiClientFactory; private logger; readonly resourceType = "conversations"; readonly displayName = "Conversations"; constructor(apiClientFactory: ApiClientFactory, logger: ILogger); /** * Pull all conversations from NEWO platform */ pull(customer: CustomerConfig, options?: PullOptions): Promise>; /** * Push is not supported for conversations (read-only) */ push(_customer: CustomerConfig, _changes?: ChangeItem[]): Promise; /** * Get changes - conversations are typically regenerated on each pull */ getChanges(_customer: CustomerConfig): Promise[]>; /** * Validate conversation data */ validate(_customer: CustomerConfig, _items: LocalConversationData[]): Promise; /** * Get status summary */ getStatus(customer: CustomerConfig): Promise; } /** * Factory function for creating ConversationSyncStrategy */ export declare function createConversationSyncStrategy(apiClientFactory: ApiClientFactory, logger: ILogger): ConversationSyncStrategy; //# sourceMappingURL=ConversationSyncStrategy.d.ts.map