import { Registry } from "./docs";
declare class Registries {
    #private;
    /**
     * Defines a new registry with the given name and details.
     *
     * The given details object may contain the following properties:
     * - `serveraddress`: The URL of the registry to use. If not provided, the default registry (index.docker.io) is used.
     * - `authentication`: An object with the following properties:
     *   - `username`: The username to use for the registry. If not provided, the default username is used.
     *   - `password`: The password to use for the registry. If not provided, the default password is used.
     *   - `email`: The email address to use for the registry. If not provided, the default email address is used.
     *
     * If the given name already exists in the registries map, an Error is thrown.
     * If the given details object is invalid (e.g. missing required properties), a TypeError is thrown.
     *
     * @param {string} name - The name of the registry to define.
     * @param {{ serveraddress: string, authentication: { username: string, password: string, email: string } }} details - The details of the registry to define.
     * @throws {Error} If the given name already exists in the registries map.
     * @throws {TypeError} If the given details object is invalid.
     */
    define(name: string, details: Omit<Registry, 'name' | 'xAuthHeader'>): void;
    /**
     * Returns a list of all registries that have been defined.
     * @returns {Registry[]} A list of all registries that have been defined.
     */
    list(): Registry[];
    /**
     * Removes a registry with the given name.
     * @param name The name of the registry to remove. Must be a non-empty string.
     * @throws TypeError If the name is not a string.
     * @throws RangeError If the name is an empty string.
     * @throws Error If a registry with the given name does not exist.
     */
    remove(name: string): void;
    /**
     * Retrieves a registry with the specified name.
     *
     * @param name - The name of the registry to retrieve.
     * @returns {Registry | undefined} The registry object if found, otherwise undefined.
     */
    get(name: string): Registry | undefined;
}
declare const registries: Registries;
export default registries;
