import { type Enum, type EnumMember, type Namespace, type Program, type Type } from "@typespec/compiler";
import { type VersionMap } from "./decorators.js";
import type { Version, VersionResolution } from "./types.js";
import { TimelineMoment, VersioningTimeline } from "./versioning-timeline.js";
export declare function getVersionDependencies(program: Program, namespace: Namespace): Map<Namespace, Map<Version, Version> | Version> | undefined;
/**
 * Resolve the version to use for all namespace for each of the root namespace versions.
 * @param program
 * @param rootNs Root namespace.
 */
export declare function resolveVersions(program: Program, namespace: Namespace): VersionResolution[];
export declare function getVersionsForEnum(program: Program, en: Enum): [Namespace, VersionMap] | [];
export declare function getVersions(p: Program, t: Type): [Namespace, VersionMap] | [];
export declare function getAllVersions(p: Program, t: Type): Version[] | undefined;
export declare enum Availability {
    Unavailable = "Unavailable",
    Added = "Added",
    Available = "Available",
    Removed = "Removed"
}
export declare function getAvailabilityMap(program: Program, type: Type): Map<string, Availability> | undefined;
export declare function getAvailabilityMapInTimeline(program: Program, type: Type, timeline: VersioningTimeline): Map<TimelineMoment, Availability> | undefined;
export declare function getVersionForEnumMember(program: Program, member: EnumMember): Version | undefined;
//# sourceMappingURL=versioning.d.ts.map