/** * AkbSyncStrategy - Handles synchronization of AKB (Knowledge Base) articles * * This strategy implements ISyncStrategy for the AKB resource. * * Key responsibilities: * - Pull AKB articles from NEWO platform * - Link articles to personas via agents * - Push changed articles back to platform * - Detect changes using stored hashes */ 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 { Persona, AkbYamlTopic } from '../../../types.js'; /** * Local AKB data for storage */ export interface LocalAkbData { agentIdn: string; personaId: string; personaName: string; topics: AkbYamlTopic[]; } /** * API client factory type */ export type ApiClientFactory = (customer: CustomerConfig, verbose: boolean) => Promise; /** * AkbSyncStrategy - Handles AKB synchronization */ export declare class AkbSyncStrategy implements ISyncStrategy { private apiClientFactory; private logger; readonly resourceType = "akb"; readonly displayName = "Knowledge Base (AKB)"; constructor(apiClientFactory: ApiClientFactory, logger: ILogger); /** * Pull all AKB articles from NEWO platform */ pull(customer: CustomerConfig, options?: PullOptions): Promise>; /** * Push changed AKB articles to NEWO platform */ push(customer: CustomerConfig, changes?: ChangeItem[]): Promise; /** * Detect changes in AKB files */ getChanges(customer: CustomerConfig): Promise[]>; /** * Validate AKB data */ validate(_customer: CustomerConfig, items: LocalAkbData[]): Promise; /** * Get status summary */ getStatus(customer: CustomerConfig): Promise; } /** * Factory function for creating AkbSyncStrategy */ export declare function createAkbSyncStrategy(apiClientFactory: ApiClientFactory, logger: ILogger): AkbSyncStrategy; //# sourceMappingURL=AkbSyncStrategy.d.ts.map