import type { FunnelContractDiagnostic } from './funnel-contract-diagnostics.js'; export declare const MAX_FUNNEL_MANIFEST_COLLECTION_ITEMS = 4096; export type NormalizedStep = { id: unknown; name: unknown; path: unknown; filePath: unknown; componentKey: unknown; type: unknown; kind: unknown; choice: unknown; }; type NormalizedEntryPoint = { id: unknown; stepId: unknown; isDefault: unknown; }; type NormalizedEdge = { toStepId: unknown; conditionId: unknown; }; type NormalizedEdgeGroup = { sourceStepId: string; edges: readonly NormalizedEdge[]; }; type NormalizedBranch = { id: unknown; name: unknown; sourceStepId: unknown; stepIds: readonly unknown[]; }; type NormalizedVariant = { variantKey: unknown; routeToStepId: unknown; }; type NormalizedExperiment = { experimentId: unknown; stepId: unknown; variants: readonly NormalizedVariant[]; }; export type NormalizedManifest = { stepContractVersion: unknown; templateArchitectureVersion: unknown; steps: readonly NormalizedStep[]; declaredStepCount: number; hasValidStepRecords: boolean; entryPoints: readonly NormalizedEntryPoint[]; edgeGroups: readonly NormalizedEdgeGroup[]; branches: readonly NormalizedBranch[]; experiments: readonly NormalizedExperiment[]; }; export type BoundaryDiagnosticInput = { code: 'FG-STEP-002' | 'FG-FLOW-002'; expected: string; received: unknown; reason: string; repair: string; }; type BoundaryDiagnosticFactory = (input: BoundaryDiagnosticInput) => FunnelContractDiagnostic; type PlainDataRecord = Record; export declare const isPlainDataRecord: (value: unknown) => value is PlainDataRecord; export type NormalizedManifestResult = { manifest: NormalizedManifest | null; diagnostics: FunnelContractDiagnostic[]; }; export declare const normalizeFunnelManifestInput: (input: unknown, createDiagnostic: BoundaryDiagnosticFactory) => NormalizedManifestResult; export {};