import * as z from 'zod';
/**
 * A schema for validating a version string in `x.y.z` format.
 *
 * Examples of valid versions:
 * - 0.1.0"
 * - 2.3.4
 */
export declare const MetadataVersionSchema: z.ZodString;
/**
 * A version string in `x.y.z` format.
 */
export type MetadataVersion = z.infer<typeof MetadataVersionSchema>;
/**
 * A schema representing the metadata of a single release.
 *
 * Includes the version of the release itself (tag) and the versions
 * of all modules bundled with it.
 */
export declare const ReleaseMetadataSchema: z.ZodObject<{
    /**
     * Unique version identifier for the release, following the `x.y.z` format.
     * @type {MetadataVersion}
     */
    tag: z.ZodString;
    /**
     * The version of the console included in the release.
     * @type {MetadataVersion}
     */
    console: z.ZodString;
    /**
     * Version of the Observatory module included in the release.
     * This field is optional because it was introduced in Juno v0.0.10.
     *
     * @type {MetadataVersion | undefined}
     */
    observatory: z.ZodOptional<z.ZodString>;
    /**
     * Version of the Mission Control module included in the release.
     * @type {MetadataVersion}
     */
    mission_control: z.ZodString;
    /**
     * Version of the Satellite module included in the release.
     * @type {MetadataVersion}
     */
    satellite: z.ZodString;
    /**
     * Version of the Orbiter module included in the release.
     * This field is optional because it was introduced in Juno v0.0.17.
     *
     * @type {MetadataVersion | undefined}
     */
    orbiter: z.ZodOptional<z.ZodString>;
    /**
     * Version of the Sputnik module included in the release.
     * This field is optional because it was introduced in Juno v0.0.47.
     *
     * @type {MetadataVersion | undefined}
     */
    sputnik: z.ZodOptional<z.ZodString>;
}, z.core.$strict>;
/**
 * The metadata for a release provided by Juno.
 */
export type ReleaseMetadata = z.infer<typeof ReleaseMetadataSchema>;
/**
 * A schema representing the list of releases provided by Juno.
 *
 * Rules:
 * - The list must contain at least one release.
 * - Each release must have a unique `tag` (version identifier).
 * - The same module version can appear in multiple releases, as not every release
 *   necessarily publishes a new version of each module.
 *
 * Validation:
 * - Ensures no duplicate `tag` values across the list of releases.
 */
export declare const ReleasesSchema: z.ZodArray<z.ZodObject<{
    /**
     * Unique version identifier for the release, following the `x.y.z` format.
     * @type {MetadataVersion}
     */
    tag: z.ZodString;
    /**
     * The version of the console included in the release.
     * @type {MetadataVersion}
     */
    console: z.ZodString;
    /**
     * Version of the Observatory module included in the release.
     * This field is optional because it was introduced in Juno v0.0.10.
     *
     * @type {MetadataVersion | undefined}
     */
    observatory: z.ZodOptional<z.ZodString>;
    /**
     * Version of the Mission Control module included in the release.
     * @type {MetadataVersion}
     */
    mission_control: z.ZodString;
    /**
     * Version of the Satellite module included in the release.
     * @type {MetadataVersion}
     */
    satellite: z.ZodString;
    /**
     * Version of the Orbiter module included in the release.
     * This field is optional because it was introduced in Juno v0.0.17.
     *
     * @type {MetadataVersion | undefined}
     */
    orbiter: z.ZodOptional<z.ZodString>;
    /**
     * Version of the Sputnik module included in the release.
     * This field is optional because it was introduced in Juno v0.0.47.
     *
     * @type {MetadataVersion | undefined}
     */
    sputnik: z.ZodOptional<z.ZodString>;
}, z.core.$strict>>;
/**
 * The list of releases provided by Juno.
 */
export type Releases = z.infer<typeof ReleasesSchema>;
/**
 * A schema for the list of all versions across releases.
 *
 * Rules:
 * - The list must contain at least one release.
 */
export declare const MetadataVersionsSchema: z.ZodArray<z.ZodString>;
/**
 * List of all versions across releases.
 */
export type MetadataVersions = z.infer<typeof MetadataVersionsSchema>;
/**
 * A schema representing the metadata for multiple releases provided by Juno.
 */
export declare const ReleasesMetadataSchema: z.ZodObject<{
    /**
     * List of all Mission Control versions across releases.
     * @type {MetadataVersion}
     */
    mission_controls: z.ZodArray<z.ZodString>;
    /**
     * List of all Satellite versions across releases.
     * @type {MetadataVersion}
     */
    satellites: z.ZodArray<z.ZodString>;
    /**
     * List of all Orbiter versions across releases.
     * @type {MetadataVersion}
     */
    orbiters: z.ZodArray<z.ZodString>;
    /**
     * List of release metadata objects, each representing one release.
     */
    releases: z.ZodArray<z.ZodObject<{
        /**
         * Unique version identifier for the release, following the `x.y.z` format.
         * @type {MetadataVersion}
         */
        tag: z.ZodString;
        /**
         * The version of the console included in the release.
         * @type {MetadataVersion}
         */
        console: z.ZodString;
        /**
         * Version of the Observatory module included in the release.
         * This field is optional because it was introduced in Juno v0.0.10.
         *
         * @type {MetadataVersion | undefined}
         */
        observatory: z.ZodOptional<z.ZodString>;
        /**
         * Version of the Mission Control module included in the release.
         * @type {MetadataVersion}
         */
        mission_control: z.ZodString;
        /**
         * Version of the Satellite module included in the release.
         * @type {MetadataVersion}
         */
        satellite: z.ZodString;
        /**
         * Version of the Orbiter module included in the release.
         * This field is optional because it was introduced in Juno v0.0.17.
         *
         * @type {MetadataVersion | undefined}
         */
        orbiter: z.ZodOptional<z.ZodString>;
        /**
         * Version of the Sputnik module included in the release.
         * This field is optional because it was introduced in Juno v0.0.47.
         *
         * @type {MetadataVersion | undefined}
         */
        sputnik: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
}, z.core.$strict>;
/**
 * The metadata for multiple releases provided by Juno.
 */
export type ReleasesMetadata = z.infer<typeof ReleasesMetadataSchema>;
