/** * Base types for integration clients. */ import type { BaseIntegrationClient } from "../types.js"; /** * Configuration for an integration, provided by the orchestrator at runtime. */ export interface IntegrationConfig { /** Unique integration ID */ id: string; /** User-defined integration name (e.g., "Production Postgres") */ name: string; /** Plugin type ID (e.g., "postgres", "slack") */ pluginId: string; /** OAuth or other auth token (injected by orchestrator) */ authToken?: string; /** Plugin-specific configuration (connection details, etc.) */ configuration: Record; } /** * Interface that all integration client implementations must satisfy. */ export interface IntegrationClientImpl extends BaseIntegrationClient { /** The integration configuration */ readonly config: IntegrationConfig; } /** * Factory function type for creating integration clients. */ export type IntegrationClientFactory = ( config: IntegrationConfig, ) => IntegrationClientImpl;