/**
 * Docker engine promises api
 *
 * @since 1.0.0
 */
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as Stream from "effect/Stream";
import type * as MobySchemas from "./MobySchemas.ts";
import * as DockerEngine from "./DockerEngine.ts";
import * as MobyConnection from "./MobyConnection.ts";
/**
 * Create a promise client for the docker engine
 *
 * @since 1.0.0
 * @category Promises
 */
export declare const promiseClient: <E1, E2>(layer: (connectionOptions: MobyConnection.MobyConnectionOptions) => Layer.Layer<Layer.Success<DockerEngine.DockerLayer>, Layer.Error<DockerEngine.DockerLayer> | E1, Layer.Services<DockerEngine.DockerLayer>>, connectionOptions?: MobyConnection.MobyConnectionOptions | Effect.Effect<MobyConnection.MobyConnectionOptions, E2, never>) => Promise<{
    pull: (a: {
        image: string;
        platform?: string | undefined;
    }) => ReadableStream<MobySchemas.JSONMessage>;
    build: <E1_1>(a: {
        tag: string;
        platform?: string | undefined;
        dockerfile?: string | undefined;
        context: Stream.Stream<Uint8Array, E1_1, never>;
        buildargs?: Record<string, string | undefined> | undefined;
    }) => ReadableStream<MobySchemas.JSONMessage>;
    stop: (containerId: string & import("effect/Brand").Brand<"ContainerId">) => Promise<void>;
    start: (containerId: string & import("effect/Brand").Brand<"ContainerId">) => Promise<void>;
    run: (options: Omit<{
        readonly Hostname?: string;
        readonly Domainname?: string;
        readonly User?: string;
        readonly AttachStdin?: boolean;
        readonly AttachStdout?: boolean;
        readonly AttachStderr?: boolean;
        readonly ExposedPorts?: {
            readonly [x: `${number}`]: object;
            readonly [x: `${number}/tcp`]: object;
            readonly [x: `${number}/udp`]: object;
        } | null | undefined;
        readonly Tty?: boolean;
        readonly OpenStdin?: boolean;
        readonly StdinOnce?: boolean;
        readonly Env?: readonly string[] | null;
        readonly Cmd?: readonly string[] | null;
        readonly Healthcheck?: MobySchemas.V1HealthcheckConfig | null | undefined;
        readonly ArgsEscaped?: boolean | undefined;
        readonly Image: string;
        readonly Volumes?: {
            readonly [x: string]: object;
        } | null;
        readonly WorkingDir?: string;
        readonly Entrypoint?: readonly string[] | null;
        readonly NetworkDisabled?: boolean | undefined;
        readonly MacAddress?: string | undefined;
        readonly OnBuild?: readonly string[] | null | undefined;
        readonly Labels?: {
            readonly [x: string]: string;
        } | null;
        readonly StopSignal?: string | undefined;
        readonly StopTimeout?: bigint | null | undefined;
        readonly Shell?: readonly string[] | null | undefined;
        readonly HostConfig?: MobySchemas.ContainerHostConfig | null | undefined;
        readonly NetworkingConfig?: MobySchemas.NetworkNetworkingConfig | null | undefined;
    }, "HostConfig"> & {
        readonly name?: string | undefined;
        readonly platform?: string | undefined;
        readonly HostConfig?: (typeof MobySchemas.ContainerHostConfig)["~type.make.in"] | undefined;
    }) => Promise<MobySchemas.ContainerInspectResponse>;
    exec: (a_0: {
        command: string | Array<string>;
        containerId: MobySchemas.ContainerIdentifier;
    }) => Promise<[exitCode: bigint, output: string]>;
    execNonBlocking: <const T extends boolean = false>(a_0: {
        detach: T;
        command: string | Array<string>;
        containerId: MobySchemas.ContainerIdentifier;
    }) => Promise<[[T] extends [false] ? import("./MobyDemux.ts").MultiplexedSocket | import("./MobyDemux.ts").RawSocket : void, string & import("effect/Brand").Brand<"ExecId">]>;
    execWebsockets: (a_0: {
        command: string | Array<string>;
        containerId: MobySchemas.ContainerIdentifier;
    }) => Promise<readonly [stdout: string, stderr: string]>;
    execWebsocketsNonBlocking: (a: {
        command: string | Array<string>;
        containerId: MobySchemas.ContainerIdentifier;
        cwd?: string | undefined;
    }) => ReadableStream<import("./MobyDemux.ts").MultiplexedChannel<never, import("./internal/endpoints/circular.ts").DockerError | import("effect/unstable/socket/Socket").SocketError, never>>;
    ps: (options?: {
        readonly all?: boolean | undefined;
        readonly limit?: number | undefined;
        readonly size?: boolean | undefined;
        readonly filters?: {
            readonly ancestor?: readonly string[] | undefined;
            readonly before?: readonly string[] | undefined;
            readonly expose?: readonly string[] | undefined;
            readonly exited?: readonly number[] | undefined;
            readonly health?: readonly ("healthy" | "none" | "starting" | "unhealthy")[] | undefined;
            readonly identifier?: readonly (string & import("effect/Brand").Brand<"ContainerId">)[] | undefined;
            readonly "is-task"?: boolean | undefined;
            readonly label?: readonly string[] | undefined;
            readonly name?: readonly string[] | undefined;
            readonly network?: readonly string[] | undefined;
            readonly publish?: readonly string[] | undefined;
            readonly since?: readonly string[] | undefined;
            readonly status?: readonly ("created" | "dead" | "exited" | "paused" | "removing" | "restarting" | "running")[] | undefined;
            readonly volume?: string | undefined;
        } | undefined;
    } | undefined) => Promise<readonly MobySchemas.ContainerSummary[]>;
    push: (name: string, options: {
        readonly tag?: string | undefined;
        readonly platform?: string | undefined;
    } | undefined) => ReadableStream<MobySchemas.JSONMessage>;
    images: (options?: {
        readonly filters?: {
            readonly before?: readonly string[] | undefined;
            readonly dangling?: boolean | undefined;
            readonly label?: readonly string[] | undefined;
            readonly reference?: readonly string[] | undefined;
            readonly since?: readonly string[] | undefined;
            readonly until?: string | undefined;
        } | undefined;
        readonly all?: boolean | undefined;
        readonly digests?: boolean | undefined;
        readonly "shared-size"?: boolean | undefined;
    } | undefined) => Promise<readonly MobySchemas.ImageSummary[]>;
    search: (options: {
        readonly term: string;
        readonly limit?: number | undefined;
        readonly filters?: {
            readonly "is-official"?: boolean | undefined;
            readonly "is-automated"?: boolean | undefined;
            readonly stars?: number | undefined;
        } | undefined;
    }) => Promise<readonly MobySchemas.RegistrySearchResult[]>;
    version: () => Promise<MobySchemas.TypesVersion>;
    info: () => Promise<MobySchemas.SystemInfo>;
    ping: () => Promise<void>;
    pingHead: () => Promise<void>;
    followProgressInConsole: (readable: ReadableStream<MobySchemas.JSONMessage>) => Promise<MobySchemas.JSONMessage[]>;
    waitForProgressToComplete: (readable: ReadableStream<MobySchemas.JSONMessage>) => Promise<MobySchemas.JSONMessage[]>;
}>;
//# sourceMappingURL=Promises.d.ts.map