import { _ as RouteId, a as CapabilityId, b as TargetId, c as MARQUETTE_FORMAT_VERSION, d as MarquetteProtocol, f as MarquetteRoute, g as RenderingMode, h as ProtocolId, i as CapabilityDefinition, l as MarquetteBackend, m as ProtocolFamily, n as BackendFamily, o as EnvironmentConsumer, p as MarquetteTarget, r as BackendId, s as EnvironmentId, t as ApplicationMarquette, u as MarquetteEnvironment, v as RuntimeFamily, y as ServerEnvironmentId } from "./model-B_mM8AeH.mjs"; //#region src/author.d.ts /** * Cross-reference constraints derived from the literals in one marquette. * * Keeping this type separate makes editor diagnostics point at the authored * reference instead of widening every identifier to `string`. */ type MarquetteReferenceConstraints = { readonly capabilities?: { readonly [Id in CapabilityId]: CapabilityDefinition & { readonly id: Id; } }; readonly environments?: readonly (MarquetteEnvironment> & { readonly capabilities?: readonly CapabilityId[]; readonly target: TargetId; })[]; readonly backends?: readonly (MarquetteBackend> & { readonly capabilities?: readonly CapabilityId[]; })[]; readonly protocols?: readonly (MarquetteProtocol> & { readonly capabilities?: readonly CapabilityId[]; })[]; readonly routes?: readonly (MarquetteRoute, BackendId, ProtocolId> & { readonly capabilities?: readonly CapabilityId[]; })[]; }; /** * Defines an application marquette while preserving every authored literal. * * Environment dependencies, backend owners, protocol owners, and route * references are checked against identifiers declared in the same object. * The function returns its input without allocation or runtime work. * * @example * ```ts * const app = defineApplicationMarquette({ * application: "shop", * targets: ["web"], * environments: [ * { id: "web", target: "web", consumer: "client", runtime: "browser" }, * ], * routes: [ * { id: "home", path: "/", environment: "web", rendering: "client" }, * ], * }); * ``` */ declare function defineApplicationMarquette(marquette: Marquette & MarquetteReferenceConstraints>): Marquette; //#endregion export { type ApplicationMarquette, type BackendFamily, type BackendId, type CapabilityDefinition, type CapabilityId, type EnvironmentConsumer, type EnvironmentId, MARQUETTE_FORMAT_VERSION, type MarquetteBackend, type MarquetteEnvironment, type MarquetteProtocol, type MarquetteReferenceConstraints, type MarquetteRoute, type MarquetteTarget, type ProtocolFamily, type ProtocolId, type RenderingMode, type RouteId, type RuntimeFamily, type ServerEnvironmentId, type TargetId, defineApplicationMarquette }; //# sourceMappingURL=index.d.mts.map