/** * IntegrationSyncStrategy - Handles synchronization of Integrations, Connectors, and Webhooks * * This strategy implements ISyncStrategy for the Integrations resource. * * Key responsibilities: * - Pull integrations from NEWO platform * - Pull connectors for each integration * - Pull webhooks (outgoing and incoming) * - Push connector changes 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 { Integration, IntegrationMetadata, ConnectorMetadata, OutgoingWebhook, IncomingWebhook } from '../../../types.js'; /** * Local integration data for storage */ export interface LocalIntegrationData { integration: IntegrationMetadata; connectors: ConnectorMetadata[]; outgoingWebhooks: OutgoingWebhook[]; incomingWebhooks: IncomingWebhook[]; } /** * API client factory type */ export type ApiClientFactory = (customer: CustomerConfig, verbose: boolean) => Promise; /** * IntegrationSyncStrategy - Handles integration synchronization */ export declare class IntegrationSyncStrategy implements ISyncStrategy { private apiClientFactory; private logger; readonly resourceType = "integrations"; readonly displayName = "Integrations"; constructor(apiClientFactory: ApiClientFactory, logger: ILogger); /** * Pull all integrations from NEWO platform */ pull(customer: CustomerConfig, options?: PullOptions): Promise>; /** * Push changed connectors to NEWO platform */ push(customer: CustomerConfig, changes?: ChangeItem[]): Promise; /** * Check if connector has changed compared to remote version */ private hasConnectorChanged; /** * Detect changes in integration files */ getChanges(customer: CustomerConfig): Promise[]>; /** * Validate integration data */ validate(_customer: CustomerConfig, items: LocalIntegrationData[]): Promise; /** * Get status summary */ getStatus(customer: CustomerConfig): Promise; } /** * Factory function for creating IntegrationSyncStrategy */ export declare function createIntegrationSyncStrategy(apiClientFactory: ApiClientFactory, logger: ILogger): IntegrationSyncStrategy; //# sourceMappingURL=IntegrationSyncStrategy.d.ts.map