/** * Select a published extension release from domain facts. * * An exact request may select a yanked release; a range selects the highest * non-yanked release it admits. Transport metadata and consumer-specific * admission policies are outside this algorithm. * * @experimental This API is unstable and may change without notice. * @packageDocumentation */ import * as Option from "effect/Option"; import type * as DateTime from "effect/DateTime"; import { type VersionEntryLike } from "./version-constraints.js"; /** The release facts needed for selection, independent of index serialization. */ export interface ReleasedVersion extends VersionEntryLike { readonly yankedAt?: DateTime.Utc | undefined; } /** * Every release a request admits, newest first. An absent request is `*`; an * exact request admits its version even when yanked; a range admits each * non-yanked release that satisfies it. */ export declare const admittedReleases: (versions: ReadonlyArray, request: Option.Option) => ReadonlyArray; /** * Resolve an optional exact version or range against an index: the newest * release {@link admittedReleases} admits. */ export declare const resolveVersionEntry: (versions: ReadonlyArray, versionRange: Option.Option) => Option.Option; /** * Select the highest non-yanked version, independent of index order. */ export declare const selectVersion: (versions: ReadonlyArray) => Option.Option; //# sourceMappingURL=version-selection.d.ts.map