import type { EcoPagesAppConfig } from '../types/internal-types.js'; import type { AssetProcessingService } from '../services/assets/asset-processing-service/asset-processing.service.js'; import type { ProcessedAsset } from '../services/assets/asset-processing-service/assets.types.js'; import type { EcoPagesElement } from '../types/public-types.js'; import type { IntegrationRenderer } from '../route-renderer/orchestration/integration-renderer.js'; import { IntegrationPlugin, type IntegrationPluginConfig } from './integration-plugin.js'; type RendererClass = new (options: { appConfig: EcoPagesAppConfig; assetProcessingService: AssetProcessingService; resolvedIntegrationDependencies: ProcessedAsset[]; rendererModules?: unknown; runtimeOrigin: string; }) => IntegrationRenderer; export interface DefineIntegrationDefinition extends IntegrationPluginConfig { renderer: RendererClass; } export interface DefinedIntegration { (options?: Omit): IntegrationPlugin; Plugin: new (options?: Omit) => IntegrationPlugin; } /** * Creates a typed integration plugin factory for integrations that only need * declarative config and a renderer class. */ export declare function defineIntegration(definition: DefineIntegrationDefinition): DefinedIntegration; export {};