import { type VoyantGraphAccessDeclaration, type VoyantGraphActionDeclaration, type VoyantGraphAdminDeclaration, type VoyantGraphCapabilityDeclaration, type VoyantGraphConfigDeclaration, type VoyantGraphCustomFieldTarget, type VoyantGraphEvent, type VoyantGraphEventCatalog, type VoyantGraphFacetEntity, type VoyantGraphJob, type VoyantGraphJobSchedule, type VoyantGraphJsonObject, type VoyantGraphLifecycleDeclaration, type VoyantGraphLinkDeclaration, type VoyantGraphPortDeclaration, type VoyantGraphPresentationDeclaration, type VoyantGraphProject, type VoyantGraphProjectDeploymentMigration, type VoyantGraphProjectDeploymentMode, type VoyantGraphProviderDeclaration, type VoyantGraphReportingCatalog, type VoyantGraphReportingDeclaration, type VoyantGraphResourceDeclaration, type VoyantGraphRouteBundle, type VoyantGraphRuntimeReference, type VoyantGraphSecretDeclaration, type VoyantGraphSetupMigration, type VoyantGraphSubscriber, type VoyantGraphToolDeclaration, type VoyantGraphUnitKind, type VoyantGraphUnitManifest, type VoyantGraphWebhookDeclaration } from "@voyant-travel/core/project"; export { defineAdapter, definePlugin, defineProvider } from "@voyant-travel/core/project"; import type { AccessCatalog } from "@voyant-travel/types/api-keys"; import type { VoyantDeploymentProviderRole, VoyantDeploymentResourceRequirement } from "./deployment-types.js"; import type { VoyantScheduledJob } from "./scheduled-jobs.js"; export declare const VOYANT_GRAPH_DEPLOYMENT_SCHEMA_VERSION: "voyant.deployment.v1"; export declare const VOYANT_GRAPH_PACKAGE_SCHEMA_VERSION: "voyant.package.v1"; export declare const VOYANT_RESOLVED_GRAPH_SCHEMA_VERSION: "voyant.resolved-graph.v1"; export type VoyantGraphPackageKind = VoyantGraphUnitKind | "framework" | "library"; export type VoyantGraphDiagnosticSeverity = "info" | "warning" | "error"; export type VoyantGraphPackageSourceKind = "registry" | "workspace" | "file" | "git" | "unknown"; export { type DefineVoyantGraphProjectInput, type DefineVoyantGraphProjectSelection, type DefineVoyantGraphProjectUnitInput, type DefineVoyantGraphUnitInput, defineExtension, defineModule, defineProject, VOYANT_EVENT_CATALOG_SCHEMA_VERSION, VOYANT_GRAPH_ADAPTER_SCHEMA_VERSION, VOYANT_GRAPH_EXTENSION_SCHEMA_VERSION, VOYANT_GRAPH_MODULE_SCHEMA_VERSION, VOYANT_GRAPH_PLUGIN_SCHEMA_VERSION, VOYANT_GRAPH_PROJECT_SCHEMA_VERSION, VOYANT_GRAPH_PROVIDER_SCHEMA_VERSION, type VoyantGraphAccessDeclaration, type VoyantGraphActionAvailabilityCondition, type VoyantGraphActionDeclaration, type VoyantGraphAdminDeclaration, type VoyantGraphCapabilityDeclaration, type VoyantGraphConfigDeclaration, type VoyantGraphCustomFieldTarget, type VoyantGraphCustomFieldTargetDeclaration, type VoyantGraphEvent, type VoyantGraphEventCatalog, type VoyantGraphEventCatalogEntry, type VoyantGraphFacetEntity, type VoyantGraphJob, type VoyantGraphJobSchedule, type VoyantGraphJobSchedulingPolicy, type VoyantGraphJsonObject, type VoyantGraphJsonValue, type VoyantGraphLifecycleDeclaration, type VoyantGraphMessageReference, type VoyantGraphPortDeclaration, type VoyantGraphPresentationDeclaration, type VoyantGraphProject, type VoyantGraphProjectJobScheduling, type VoyantGraphProjectSelection, type VoyantGraphProjectSelectionProvenance, type VoyantGraphProjectSelections, type VoyantGraphProviderDeclaration, type VoyantGraphReportingCatalog, type VoyantGraphReportingDataset, type VoyantGraphReportingDeclaration, type VoyantGraphReportingGridPlacement, type VoyantGraphReportingGridSize, type VoyantGraphReportingRequirement, type VoyantGraphReportingRequirementKind, type VoyantGraphReportingWidget, type VoyantGraphReportTemplate, type VoyantGraphResolvedReportingDataset, type VoyantGraphResolvedReportingWidget, type VoyantGraphResolvedReportTemplate, type VoyantGraphResourceDeclaration, type VoyantGraphRouteBundle, type VoyantGraphRouteMethod, type VoyantGraphRouteSurface, type VoyantGraphRuntimeReference, type VoyantGraphSecretDeclaration, type VoyantGraphSetupMigration, type VoyantGraphSubscriber, type VoyantGraphToolDeclaration, type VoyantGraphUnitKind, type VoyantGraphUnitManifest, type VoyantGraphWebhookDeclaration, } from "@voyant-travel/core/project"; export declare const VOYANT_GRAPH_RESERVED_FACETS: readonly ["admin", "slots", "copy", "openapi", "tools", "mcp", "permissions", "rbac", "scopes", "actions", "audit", "i18n", "config", "secrets", "emits", "outboundWebhooks", "lifecycle", "runtime"]; export declare const VOYANT_GRAPH_DIAGNOSTIC_CODE_REGISTRY: { readonly VOYANT_GRAPH_ARTIFACT_MISSING: "A generated deployment graph artifact is missing."; readonly VOYANT_GRAPH_ARTIFACT_STALE: "A generated deployment graph artifact is stale."; readonly VOYANT_GRAPH_CONFLICTING_CUSTOM_FIELD_NAMESPACE_OWNER: "Two selected graph units claim authority for the same custom-field namespace."; readonly VOYANT_GRAPH_DUPLICATE_CUSTOM_FIELD_TARGET: "Two selected graph units claim authority for the same custom-field target."; readonly VOYANT_GRAPH_DUPLICATE_ENTITY_ID: "Two v1 graph entities resolved to the same stable entity id."; readonly VOYANT_GRAPH_DUPLICATE_EVENT_TYPE: "Two selected graph units claim authority for the same emitted event type."; readonly VOYANT_GRAPH_DUPLICATE_EVENT_VERSION: "One selected graph unit declares the same emitted event type and version more than once."; readonly VOYANT_GRAPH_DUPLICATE_ID: "Two selected graph units resolved to the same graph id."; readonly VOYANT_GRAPH_INCOMPATIBLE_EVENT_SCHEMA: "An emitted-event payload schema is incompatible with its previous major-version contract."; readonly VOYANT_GRAPH_INCOMPATIBLE_UPGRADE: "A selected package does not admit upgrades from the previous package version."; readonly VOYANT_GRAPH_INVALID_CAPABILITY_TOKEN: "A provides/requires capability token does not match v1 namespace rules."; readonly VOYANT_GRAPH_INVALID_CUSTOM_FIELD_TARGET: "A custom-field target declaration does not match the closed selected-graph contract."; readonly VOYANT_GRAPH_INVALID_ENTITY_ID: "A v1 facet entity is missing a stable id or uses an invalid id."; readonly VOYANT_GRAPH_INVALID_FACET: "A supported v1 facet does not match its closed metadata contract."; readonly VOYANT_GRAPH_INVALID_ID: "A graph unit id is missing or is not a canonical package graph id."; readonly VOYANT_GRAPH_INVALID_PROVIDER_SELECTION: "A deployment provider role is missing, unsupported, or ambiguously selected."; readonly VOYANT_GRAPH_INVALID_REPORTING_FACET: "A reporting dataset, widget, or template does not match the closed graph contract."; readonly VOYANT_GRAPH_INVALID_ROUTE_BUNDLE: "An API route bundle declaration does not match the v1 route metadata contract."; readonly VOYANT_GRAPH_INVALID_SCHEMA_VERSION: "A graph declaration uses an unsupported schema version."; readonly VOYANT_GRAPH_INVALID_SCOPE: "An API route bundle required scope does not match v1 resource:action syntax."; readonly VOYANT_GRAPH_MANIFEST_LOAD_FAILED: "An admitted package manifest could not be loaded or did not declare the selected graph unit."; readonly VOYANT_GRAPH_MANIFEST_OWNERSHIP_MISMATCH: "A package manifest declared a graph unit owned by a different package."; readonly VOYANT_GRAPH_MISSING_CAPABILITY: "A selected graph unit requires a capability that no selected graph unit provides."; readonly VOYANT_GRAPH_MISSING_PORT: "A selected graph unit requires a typed port that no selected graph unit provides."; readonly VOYANT_GRAPH_PACKAGE_INCOMPATIBLE: "A package metadata record is incompatible with the selected target or deployment mode."; readonly VOYANT_GRAPH_PACKAGE_SOURCE_UNADMITTED: "A package source kind is not admitted by the configured graph admission policy."; readonly VOYANT_GRAPH_REQUIRED_JOB_DISABLED: "A deployment configuration attempted to disable a required package-owned job."; readonly VOYANT_GRAPH_RUNTIME_PACKAGE_UNADMITTED: "A graph runtime reference points to a package that did not pass admission."; readonly VOYANT_GRAPH_UNKNOWN_FACET: "A graph unit manifest contains an unknown top-level facet."; readonly VOYANT_GRAPH_UNKNOWN_JOB: "A deployment scheduling preference references a job not selected by the graph."; readonly VOYANT_GRAPH_UNKNOWN_REFERENCE: "A package facet references an entity that is not present in the selected graph."; readonly VOYANT_GRAPH_UNSUPPORTED_FACET: "A graph unit manifest uses a reserved facet that this toolchain does not support yet."; readonly VOYANT_GRAPH_UNSUPPORTED_JOB_SCHEDULE_PROFILE: "A deployment scheduling preference is not declared by the package-owned job policy."; }; export type VoyantGraphDiagnosticCode = keyof typeof VOYANT_GRAPH_DIAGNOSTIC_CODE_REGISTRY; export interface VoyantGraphSourceLocation { file?: string; line?: number; column?: number; } export interface VoyantGraphDiagnostic { code: VoyantGraphDiagnosticCode; severity: VoyantGraphDiagnosticSeverity; source?: string; facet?: string; location?: VoyantGraphSourceLocation; message: string; hint?: string; } export interface VoyantGraphScheduledJob { id: string; cron: string; description: string; route: string; module: string; } /** Host-facing inventory for fixed jobs selected with product packages. */ export interface VoyantGraphProvisionedJob { id: string; unitId: string; packageName: string; schedule?: VoyantGraphJobSchedule; /** Declared bounds and the deterministic host-resolved selection. */ scheduling?: { default?: VoyantGraphJobSchedule; profiles: Readonly>; required: boolean; selected?: string; }; wakeup: boolean; } export interface VoyantGraphInboundWebhookPlanEntry { id: string; unitId: string; packageName: string; apiId: string; apiUnitId: string; mountPath: string; secretIds: readonly string[]; } export interface VoyantGraphOutboundWebhookPlanEntry { id: string; unitId: string; packageName: string; eventId: string; eventUnitId: string; eventType: string; eventVersion: string; payloadSchema: VoyantGraphJsonObject; visibility: "external"; audit: { sourceModule: string; category: "domain" | "internal"; }; secretIds: readonly string[]; } /** Executable webhook posture compiled from only the selected graph units. */ export interface VoyantGraphWebhookPlan { inbound: readonly VoyantGraphInboundWebhookPlanEntry[]; outbound: readonly VoyantGraphOutboundWebhookPlanEntry[]; } export interface DefineVoyantGraphDeploymentInput { schemaVersion?: typeof VOYANT_GRAPH_DEPLOYMENT_SCHEMA_VERSION; project: VoyantGraphProject; target: VoyantGraphRuntimeTarget; providers?: Partial>; migrations?: readonly VoyantGraphProjectDeploymentMigration[]; mode?: VoyantGraphProjectDeploymentMode; requirements?: VoyantGraphDeploymentRequirements; meta?: VoyantGraphJsonObject; } /** Unified Voyant applications always execute as resident Node processes. */ export type VoyantGraphRuntimeTarget = "node"; export interface VoyantGraphDeploymentRequirements { resources: readonly VoyantDeploymentResourceRequirement[]; } export interface VoyantGraphDeployment { schemaVersion: typeof VOYANT_GRAPH_DEPLOYMENT_SCHEMA_VERSION; project: VoyantGraphProject; target: VoyantGraphRuntimeTarget; providers: Partial>; migrations?: readonly VoyantGraphProjectDeploymentMigration[]; mode?: VoyantGraphProjectDeploymentMode; requirements: VoyantGraphDeploymentRequirements; meta?: VoyantGraphJsonObject; } export interface VoyantGraphPackageMetadata { schemaVersion: typeof VOYANT_GRAPH_PACKAGE_SCHEMA_VERSION; kind: VoyantGraphPackageKind; /** Import-cheap package export containing package-owned graph declarations. */ manifest?: string; /** Package-owned runtime-port contributor selected and statically lowered with the graph. */ runtime?: Required>; compatibleWith?: { framework?: string; targets?: readonly string[]; modes?: readonly VoyantGraphProjectDeploymentMode[]; }; requires?: VoyantGraphCapabilityDeclaration; /** Package schema export and its package-level migration dependencies. */ schema?: string; requiresSchemas?: readonly string[]; } export interface VoyantGraphPackageRecord { packageName: string; version?: string; source: { kind: VoyantGraphPackageSourceKind; reference?: string; integrity?: string; }; metadata?: VoyantGraphPackageMetadata; } export type VoyantPackageMetadata = VoyantGraphPackageMetadata; export interface VoyantGraphAdmissionPolicy { allowedSourceKinds?: readonly VoyantGraphPackageSourceKind[]; } export interface ResolveDeploymentGraphInput { project: VoyantGraphProject; deployment?: Omit & { schemaVersion?: typeof VOYANT_GRAPH_DEPLOYMENT_SCHEMA_VERSION; target?: VoyantGraphRuntimeTarget; }; packageRecords?: readonly VoyantGraphPackageRecord[]; scheduledJobs?: readonly (VoyantScheduledJob | VoyantGraphScheduledJob)[]; frameworkVersion?: string; target?: VoyantGraphRuntimeTarget; mode?: VoyantGraphProjectDeploymentMode; admission?: VoyantGraphAdmissionPolicy; } export interface ResolveDeploymentGraphWithPackageManifestsInput extends ResolveDeploymentGraphInput { loadPackageManifests: (record: VoyantGraphPackageRecord) => Promise; } export interface CreateTestDeploymentInput { modules: readonly VoyantGraphUnitManifest[]; extensions?: readonly VoyantGraphUnitManifest[]; plugins?: readonly VoyantGraphUnitManifest[]; adapters?: readonly VoyantGraphUnitManifest[]; providers?: readonly VoyantGraphUnitManifest[]; target?: VoyantGraphRuntimeTarget; mode?: VoyantGraphProjectDeploymentMode; packageRecords?: readonly VoyantGraphPackageRecord[]; } export interface ResolvedVoyantGraphUnit { id: string; kind: VoyantGraphUnitKind; packageName: string; localId?: string; order: number; /** JSON-safe values authored on this unit's project selection. */ projectConfig?: VoyantGraphJsonObject; runtime?: VoyantGraphRuntimeReference; runtimePorts?: readonly VoyantGraphPortDeclaration[]; customFieldTargets: readonly VoyantGraphCustomFieldTarget[]; provides: { capabilities: readonly string[]; ports: readonly VoyantGraphPortDeclaration[]; }; requires: { capabilities: readonly string[]; ports: readonly VoyantGraphPortDeclaration[]; }; api: readonly VoyantGraphRouteBundle[]; schema: readonly VoyantGraphFacetEntity[]; migrations: readonly VoyantGraphFacetEntity[]; links: readonly VoyantGraphLinkDeclaration[]; subscribers: readonly VoyantGraphSubscriber[]; events: readonly VoyantGraphEvent[]; jobs: readonly VoyantGraphJob[]; setupMigrations?: readonly VoyantGraphSetupMigration[]; config?: readonly VoyantGraphConfigDeclaration[]; secrets?: readonly VoyantGraphSecretDeclaration[]; resources?: readonly VoyantGraphResourceDeclaration[]; providers?: readonly VoyantGraphProviderDeclaration[]; access?: VoyantGraphAccessDeclaration; admin?: VoyantGraphAdminDeclaration; presentations?: readonly VoyantGraphPresentationDeclaration[]; reporting?: VoyantGraphReportingDeclaration; tools?: readonly VoyantGraphToolDeclaration[]; webhooks?: readonly VoyantGraphWebhookDeclaration[]; actions?: readonly ResolvedVoyantGraphActionDeclaration[]; lifecycle?: VoyantGraphLifecycleDeclaration; } export interface ResolvedVoyantGraphActionDeclaration extends Omit { /** * Conditional actions remain authored-unavailable in the resolved graph. * Exact-provider activation is process-local and never changes graph metadata. */ availability?: VoyantGraphActionDeclaration["availability"]; } export interface ResolvedVoyantDeploymentGraph { schemaVersion: typeof VOYANT_RESOLVED_GRAPH_SCHEMA_VERSION; contentHash: string; project: { productBom?: import("@voyant-travel/core/project").VoyantProductBomReference; }; deployment: { target?: VoyantGraphRuntimeTarget; mode?: VoyantGraphProjectDeploymentMode; providers: Partial>; migrations?: readonly VoyantGraphProjectDeploymentMigration[]; }; requirements: VoyantGraphDeploymentRequirements; modules: readonly ResolvedVoyantGraphUnit[]; extensions: readonly ResolvedVoyantGraphUnit[]; plugins: readonly ResolvedVoyantGraphUnit[]; adapters: readonly ResolvedVoyantGraphUnit[]; providers: readonly ResolvedVoyantGraphUnit[]; capabilities: { provided: readonly string[]; required: readonly string[]; }; packageRecords: readonly VoyantGraphPackageRecord[]; accessCatalog: AccessCatalog; eventCatalog: VoyantGraphEventCatalog; reportingCatalog: VoyantGraphReportingCatalog; webhookPlan: VoyantGraphWebhookPlan; provisioning: { jobs: readonly VoyantGraphProvisionedJob[]; scheduledJobs: readonly VoyantGraphScheduledJob[]; }; diagnostics: readonly VoyantGraphDiagnostic[]; } export interface TestDeployment { graph: ResolvedVoyantDeploymentGraph; doctor: { diagnostics: readonly VoyantGraphDiagnostic[]; expectClean: () => void; }; migrations: { expectDeclared: (id: string) => void; expectReplayParity: () => void; }; routes: { list: () => string[]; expectMounted: (path: string) => void; }; } export declare function defineDeployment(input: DefineVoyantGraphDeploymentInput): VoyantGraphDeployment; export declare function deriveDeploymentRequirements(providers?: Partial>): VoyantGraphDeploymentRequirements; export declare function validateGraphUnitManifest(input: unknown, kind?: VoyantGraphUnitKind): VoyantGraphDiagnostic[]; export declare function resolveDeploymentGraph(input: ResolveDeploymentGraphInput): Promise; /** * Resolve package selection and admission first, then import only manifests * belonging to packages that passed admission and resolve the graph again. */ export declare function resolveDeploymentGraphWithPackageManifests(input: ResolveDeploymentGraphWithPackageManifestsInput): Promise; export declare function createTestDeployment(input: CreateTestDeploymentInput): Promise; export declare function generateCustomSourceModuleManifests(specifiers?: readonly string[]): VoyantGraphUnitManifest[]; export declare function generateCustomSourceExtensionManifests(specifiers?: readonly string[]): VoyantGraphUnitManifest[]; /** @deprecated Use generateCustomSourceExtensionManifests. */ export declare const generateCustomSourcePluginManifests: typeof generateCustomSourceExtensionManifests; export declare function graphIdFromSpecifier(specifier: string): string; export declare function packageNameFromSpecifier(specifier: string): string; export declare function childGraphEntityId(parentId: string, childId: string): string; export declare function canonicalJson(value: unknown): string; export declare function sha256(value: unknown): Promise; /** Deterministic semver-range subset shared by package admission and graph lifecycle planning. */ export declare function isVoyantVersionCompatible(version: string, range: string): boolean;