import type { ProcessedAsset } from '../../../services/assets/asset-processing-service/index.js'; import type { HtmlDocumentContribution } from '../../../services/html/html-transformer.service.js'; import type { EcoPagesAppConfig } from '../../../types/internal-types.js'; import type { EcoComponent, EcoPageFile, IntegrationRendererRenderOptions, PageBrowserGraphContribution, PageBrowserGraphContributionContext, PagePackageResult, RouteRendererBody, RouteRendererOptions } from '../../../types/public-types.js'; import type { ResolvedPageDependencies } from '../../page-loading/resolved-page-dependencies.js'; import type { RouteHtmlFinalization, RouteRenderOrchestratorAdapter, RouteRenderOrchestratorResolvedInputs } from './route-render-orchestrator.js'; /** * Host surface required to build the orchestrator adapter for one integration renderer. */ export type IntegrationRouteRenderAdapterHost = { readonly name: string; readonly appConfig: EcoPagesAppConfig; readonly watch: boolean; readonly hostOwnsDevClient?: boolean; resolveRouteRenderInputs(routeOptions: RouteRendererOptions): Promise; resolveRouteDependencies(input: { components: (EcoComponent | Partial)[]; }): Promise<{ resolvedDependencies: ProcessedAsset[]; }>; importPageFile(file: string): Promise; collectPageBrowserGraphContribution(context: PageBrowserGraphContributionContext): Promise; resolvePageDependencies(context: PageBrowserGraphContributionContext): Promise; buildPageBrowserGraphContributionContext(routeFile: string, routeOptions?: Pick): Promise; renderRouteBody(renderOptions: IntegrationRendererRenderOptions): Promise; getDocumentAttributes(renderOptions: IntegrationRendererRenderOptions): Record | undefined; getHtmlDocumentContributions(options: { renderOptions: IntegrationRendererRenderOptions; partial: boolean; }): HtmlDocumentContribution[] | undefined; applyAttributesToHtmlElement(html: string, attributes: Record): string; transformRouteResponse(response: Response, htmlContributions?: HtmlDocumentContribution[], pagePackage?: PagePackageResult): Promise; }; /** * Builds the internal route-render adapter consumed by `RouteRenderOrchestrator`. */ export declare function createIntegrationRouteRenderAdapter(host: IntegrationRouteRenderAdapterHost): RouteRenderOrchestratorAdapter; export type { RouteHtmlFinalization };