import { Hono } from 'hono'; import { PptxRasterizer, PptxBatchRasterizer } from '@json-to-office/shared'; type ApiAuthMode = 'auto' | 'required' | 'disabled'; type OutboundSourceMode = 'development' | 'safe'; interface ApiKeyAuthOptions { mode: ApiAuthMode; apiKey?: string; headerName?: string; } interface OutboundSourcePolicy { mode: OutboundSourceMode; allowedHosts: readonly string[]; } /** Public front server for the chart exporter and pptx rasterizer. */ type FetchImplementation = typeof fetch; interface RenderServerOptions { upstreamUrl?: string; proxyTimeoutMs?: number; healthTimeoutMs?: number; maxExportBodyBytes?: number; maxRasterizeBodyBytes?: number; maxResponseBytes?: number; maxConcurrent?: number; exportRateLimit?: number; rasterizeRateLimit?: number; rateLimitWindowMs?: number; trustProxyHeaders?: boolean; auth?: ApiKeyAuthOptions; sourcePolicy?: OutboundSourcePolicy; fetch?: FetchImplementation; getRasterizer?: () => PptxRasterizer; getBatchRasterizer?: () => PptxBatchRasterizer; } declare function createRenderServerApp(options?: RenderServerOptions): Hono; export { type RenderServerOptions, createRenderServerApp };