import type * as Array from "effect/Array";
import type * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
import * as Context from "effect/Context";
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as Redacted from "effect/Redacted";
import * as HttpClient from "effect/unstable/http/HttpClient";
import { DockerError } from "./circular.ts";
import { System } from "./system.js";
declare const RegistryAuth_base: Context.ServiceClass<RegistryAuth, "the-moby-effect/endpoints/httpApiHacks/RegistryAuth", {
    readonly authHeader: Redacted.Redacted<string>;
}> & {
    readonly make: (authHeader: Redacted.Redacted<string>) => Effect.Effect<{
        readonly authHeader: Redacted.Redacted<string>;
    }, never, never>;
};
/**
 * @since 1.0.0
 * @category Auth
 * @see https://docs.docker.com/reference/api/engine/version/v1.51/#section/Authentication
 */
export declare class RegistryAuth extends RegistryAuth_base {
    /**
     * @since 1.0.0
     * @category Auth
     * @see https://docs.docker.com/reference/api/engine/version/v1.51/#section/Authentication
     */
    static readonly Live: (authHeader: Redacted.Redacted<string>) => Layer.Layer<RegistryAuth, never, never>;
    /**
     * @since 1.0.0
     * @category Auth
     * @see https://docs.docker.com/reference/api/engine/version/v1.51/#section/Authentication
     */
    static readonly Credentials: (credentials: {
        serverAddress?: string | undefined;
        username: Redacted.Redacted<string>;
        password: Redacted.Redacted<string>;
        email?: Redacted.Redacted<string> | undefined;
    }) => Layer.Layer<RegistryAuth, never, never>;
    /**
     * @since 1.0.0
     * @category Auth
     * @see https://docs.docker.com/reference/api/engine/version/v1.51/#section/Authentication
     */
    static readonly Token: (credentials: {
        serverAddress?: string | undefined;
        username: Redacted.Redacted<string>;
        password: Redacted.Redacted<string>;
        email?: Redacted.Redacted<string> | undefined;
    }) => Layer.Layer<RegistryAuth, DockerError, System>;
}
/**
 * @since 1.0.0
 * @category Auth
 * @see https://docs.docker.com/reference/api/engine/version/v1.51/#section/Authentication
 */
export declare const WithRegistryAuthHeader: (...sendHeaderWithEndpoints: Array.NonEmptyReadonlyArray<HttpApiEndpoint.Constraint & {
    readonly path: string;
}>) => <E, R>(self: HttpClient.HttpClient.With<E, R>) => HttpClient.HttpClient.With<E, R>;
export {};
//# sourceMappingURL=auth.d.ts.map