/** * Provider-agnostic deployment analyzer. * * Core principle: one function = one deployment unit. * Each function gets its own unit with all its triggers (HTTP, queue, cron). * Gateways (MCP, agents, channels) dispatch to function units via RPC. * Workflow orchestrators dispatch to step units via queue or RPC (inline). */ import { type InspectorState } from '@pikku/inspector'; import type { DeploymentManifest } from './manifest.js'; export interface AnalyzerOptions { projectId: string; /** Services that can't run serverless — functions using them get target: 'server' */ serverlessIncompatible?: string[]; /** * Default deploy target for functions without an explicit `deploy` flag * and no serverless-incompatible service. Sourced from `pikku.config.json` * → `deploy.defaultTarget`. Defaults to 'serverless'. */ defaultTarget?: 'serverless' | 'server'; /** * When `true` (default), the analyzer synthesizes a per-workflow * orchestrator queue + a per-step queue, plus the matching producer * bindings, so providers whose workflow runtime fans out via queues * have everything they need. * * Set to `false` for providers whose workflow runtime dispatches steps * natively (e.g. Cloudflare's DO-backed `CloudflareWorkflowService`). * In that case no `wf-orchestrator-*` / `wf-step-*` queues are added * to `manifest.queues` and the orchestrator unit is emitted with no * `{ type: 'queue' }` handler — only the HTTP routes. * * Queues created via explicit `wireQueue(...)` user code are unaffected. */ workflowQueues?: boolean; } export declare function analyzeDeployment(state: InspectorState, options: AnalyzerOptions): DeploymentManifest; export declare function toSafeKebab(str: string): string;