import type { CustomFieldRegistryResolver } from "@voyant-travel/core/custom-fields"; import { type KmsProvider } from "@voyant-travel/utils"; export declare const RELATIONSHIPS_ROUTE_RUNTIME_CONTAINER_KEY = "runtime.relationships.routes"; /** * Hook for apps that source KMS keys from somewhere other than env * vars / wrangler secrets. Mirrors the same hook in * `@voyant-travel/bookings`. */ export type ResolveRelationshipsKmsProvider = (env: Record) => KmsProvider | Promise; export interface RelationshipsRouteRuntime { /** * Returns the configured KMS provider, or `null` when no provider * is wired (e.g. dev environments without KMS keys). Routes that * require KMS gracefully reject with a 503 in that case. */ getKmsProvider(): Promise; /** Resolves the custom-field registry from persisted definitions for a request. */ customFields?: CustomFieldRegistryResolver; /** Resolves and locks persisted definitions for an entity write transaction. */ customFieldsForWrite?: (db: unknown, entity: string) => ReturnType; } export interface RelationshipsRouteRuntimeOptions { resolveKmsProvider?: ResolveRelationshipsKmsProvider; customFields?: CustomFieldRegistryResolver; customFieldsForWrite?: (db: unknown, entity: string) => ReturnType; } export declare function buildRelationshipsRouteRuntime(bindings: Record, options?: RelationshipsRouteRuntimeOptions): RelationshipsRouteRuntime;