export interface FlowField { name: string; type: string; optional: boolean; } export interface FlowIndex { name: string; kind: string; expression: string; } export interface FlowCollection { name: string; fields: FlowField[]; indexes: FlowIndex[]; } export interface FlowBlock { name: string; statements: string[]; } export interface FlowStep extends FlowBlock { } export interface FlowWorkflow { name: string; parameters: string; steps: FlowStep[]; } export interface FlowTrigger { event: string; statements: string[]; } export interface FlowSpec { version: 1; app: string; collections: FlowCollection[]; capabilities: FlowBlock[]; agents: FlowBlock[]; workflows: FlowWorkflow[]; triggers: FlowTrigger[]; policies: FlowBlock[]; schedules: FlowBlock[]; modules?: import('./module.js').FlowModuleDeclaration[]; } export interface FlowDiagnostic { severity: 'error' | 'warning'; message: string; path?: string; } export interface FlowSpecDiff { added: string[]; removed: string[]; changed: string[]; } export interface FlowMigrationOperation { kind: 'add' | 'change' | 'remove'; target: string; safety: 'safe' | 'requires_transform' | 'destructive'; detail: string; } export declare const FLOW_PRIMITIVE_TYPES: readonly ["text", "integer", "number", "boolean", "datetime", "date", "time", "json", "uuid", "decimal", "money", "bigint", "email", "url", "phone", "binary", "file", "geo", "object"]; export declare function isValidFlowFieldType(type: string): boolean; import type { ApplicationManifest } from './application-manifest.js'; /** FlowSpec is a portable source format; the returned Rust manifest is authoritative only after server validation. */ export declare function flowSpecToManifest(spec: FlowSpec, tenantId: string, applicationId: string): ApplicationManifest; export declare function manifestToFlowSpec(manifest: ApplicationManifest): FlowSpec; export declare function parseFlowSpec(source: string): FlowSpec; export declare function validateFlowSpec(spec: FlowSpec): FlowDiagnostic[]; export declare function formatFlowSpec(spec: FlowSpec): string; export declare function diffFlowSpec(before: FlowSpec, after: FlowSpec): FlowSpecDiff; export declare function planFlowSpecMigration(before: FlowSpec, after: FlowSpec): FlowMigrationOperation[]; export declare function emptyFlowSpec(app?: string): FlowSpec; //# sourceMappingURL=flowspec.d.ts.map