/**
 * Docker engine callbacks api
 *
 * @since 1.0.0
 */
import type * as Context from "effect/Context";
import type * as Exit from "effect/Exit";
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";
/**
 * @since 1.0.0
 * @category Callbacks
 */
export declare const runCallbackForEffect: <R = never>(services: Context.Context<R>) => <A = void, E = never>(effect: Effect.Effect<A, E, R>) => (callback: (exit: Exit.Exit<A, E>) => void) => (interruptor?: number | undefined) => void;
/**
 * @since 1.0.0
 * @category Callbacks
 */
export declare function runCallback<R = never>(services: Context.Context<R>, arity: 0): <A = void, E = never>(function_: () => Effect.Effect<A, E, R>) => (callback: (exit: Exit.Exit<A, E>) => void) => void;
export declare function runCallback<R = never>(services: Context.Context<R>, arity: 1): <Z, A = void, E = never>(function_: (z: Z) => Effect.Effect<A, E, R>) => (z: Z, callback: (exit: Exit.Exit<A, E>) => void) => void;
export declare function runCallback<R = never>(services: Context.Context<R>, arity: 2): <Y, Z, A = void, E = never>(function_: (y: Y, z: Z) => Effect.Effect<A, E, R>) => (y: Y, z: Z, callback: (exit: Exit.Exit<A, E>) => void) => void;
export declare function runCallback<R = never>(services: Context.Context<R>, arity: 3): <X, Y, Z, A = void, E = never>(function_: (x: X, y: Y, z: Z) => Effect.Effect<A, E, R>) => (x: X, y: Y, z: Z, callback: (exit: Exit.Exit<A, E>) => void) => void;
export declare function runCallback<R = never>(services: Context.Context<R>, arity: 4): <W, X, Y, Z, A = void, E = never>(function_: (w: W, x: X, y: Y, z: Z) => Effect.Effect<A, E, R>) => (w: W, x: X, y: Y, z: Z, callback: (exit: Exit.Exit<A, E>) => void) => void;
export declare function runCallback<R = never>(services: Context.Context<R>, arity: 5): <V, W, X, Y, Z, A = void, E = never>(function_: (v: V, w: W, x: X, y: Y, z: Z) => Effect.Effect<A, E, R>) => (v: V, w: W, x: X, y: Y, z: Z, callback: (exit: Exit.Exit<A, E>) => void) => void;
/**
 * Create a callback client for the docker engine
 *
 * @since 1.0.0
 * @category Callbacks
 */
export declare const callbackClient: <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: (z: string & import("effect/Brand").Brand<"ContainerId">, callback: (exit: Exit.Exit<void, import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    start: (z: string & import("effect/Brand").Brand<"ContainerId">, callback: (exit: Exit.Exit<void, import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    run: (z: 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;
    }, callback: (exit: Exit.Exit<MobySchemas.ContainerInspectResponse, import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    exec: (z: {
        command: string | Array<string>;
        containerId: MobySchemas.ContainerIdentifier;
    }, callback: (exit: Exit.Exit<[exitCode: bigint, output: string], import("./internal/endpoints/circular.ts").DockerError | import("effect/SchemaError").SchemaError | import("effect/unstable/socket/Socket").SocketError>) => void) => void;
    execNonBlocking: <const T extends boolean = false>(z: {
        detach: T;
        command: string | Array<string>;
        containerId: MobySchemas.ContainerIdentifier;
    }, callback: (exit: Exit.Exit<[[T] extends [false] ? import("./MobyDemux.ts").MultiplexedSocket | import("./MobyDemux.ts").RawSocket : void, string & import("effect/Brand").Brand<"ExecId">], import("./internal/endpoints/circular.ts").DockerError | import("effect/SchemaError").SchemaError | import("effect/unstable/socket/Socket").SocketError>) => void) => void;
    execWebsockets: (z: {
        command: string | Array<string>;
        containerId: MobySchemas.ContainerIdentifier;
    }, callback: (exit: Exit.Exit<readonly [stdout: string, stderr: string], import("./internal/endpoints/circular.ts").DockerError | import("effect/SchemaError").SchemaError | import("effect/unstable/socket/Socket").SocketError>) => void) => void;
    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: (z: {
        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, callback: (exit: Exit.Exit<readonly MobySchemas.ContainerSummary[], import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    push: (name: string, options: {
        readonly tag?: string | undefined;
        readonly platform?: string | undefined;
    } | undefined) => ReadableStream<MobySchemas.JSONMessage>;
    images: (z: {
        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, callback: (exit: Exit.Exit<readonly MobySchemas.ImageSummary[], import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    search: (z: {
        readonly term: string;
        readonly limit?: number | undefined;
        readonly filters?: {
            readonly "is-official"?: boolean | undefined;
            readonly "is-automated"?: boolean | undefined;
            readonly stars?: number | undefined;
        } | undefined;
    }, callback: (exit: Exit.Exit<readonly MobySchemas.RegistrySearchResult[], import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    version: (callback: (exit: Exit.Exit<MobySchemas.TypesVersion, import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    info: (callback: (exit: Exit.Exit<MobySchemas.SystemInfo, import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    ping: (callback: (exit: Exit.Exit<void, import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    pingHead: (callback: (exit: Exit.Exit<void, import("./internal/endpoints/circular.ts").DockerError>) => void) => void;
    followProgressInConsole: (z: ReadableStream<MobySchemas.JSONMessage>, callback: (exit: Exit.Exit<MobySchemas.JSONMessage[], unknown>) => void) => void;
    waitForProgressToComplete: (z: ReadableStream<MobySchemas.JSONMessage>, callback: (exit: Exit.Exit<MobySchemas.JSONMessage[], unknown>) => void) => void;
}>;
//# sourceMappingURL=Callbacks.d.ts.map