// Type definitions for dockerode 2.5 // Project: https://github.com/apocas/dockerode // Definitions by: Carl Winkler // Nicolas Laplante // ByeongHun Yoo // Ray Fang // Marius Meisenzahl // Rob Moran // Cameron Diver // Pascal Sthamer // Stuart Thomson // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 /// import * as stream from 'stream'; import * as events from 'events'; // The modem parameter is an instance of docker-modem, which is missing type declarations. // https://github.com/apocas/docker-modem declare namespace Dockerode { class Container { constructor(modem: any, id: string); modem: any; id: string; inspect(options: {}, callback: Callback): void; inspect(callback: Callback): void; inspect(options?: {}): Promise; rename(options: {}, callback: Callback): void; rename(options: {}): Promise; update(options: {}, callback: Callback): void; update(options: {}): Promise; top(options: {}, callback: Callback): void; top(callback: Callback): void; top(options?: {}): Promise; changes(callback: Callback): void; changes(): Promise; export(callback: Callback): void; export(): Promise; start(options: {}, callback: Callback): void; start(callback: Callback): void; start(options?: {}): Promise; pause(options: {}, callback: Callback): void; pause(callback: Callback): void; pause(options?: {}): Promise; unpause(options: {}, callback: Callback): void; unpause(callback: Callback): void; unpause(options?: {}): Promise; exec(options: ExecCreateOptions, callback: Callback): void; exec(options: ExecCreateOptions): Promise; commit(options: {}, callback: Callback): void; commit(callback: Callback): void; commit(options?: {}): Promise; stop(options: {}, callback: Callback): void; stop(callback: Callback): void; stop(options?: {}): Promise; restart(options: {}, callback: Callback): void; restart(callback: Callback): void; restart(options?: {}): Promise; kill(options: {}, callback: Callback): void; kill(callback: Callback): void; kill(options?: {}): Promise; resize(options: {}, callback: Callback): void; resize(callback: Callback): void; resize(options?: {}): Promise; wait(callback: Callback): void; wait(): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; /** Deprecated since RAPI v1.20 */ copy(options: {}, callback: Callback): void; /** Deprecated since RAPI v1.20 */ copy(callback: Callback): void; /** Deprecated since RAPI v1.20 */ copy(options?: {}): Promise; getArchive(options: {}, callback: Callback): void; getArchive(options: {}): Promise; infoArchive(options: {}, callback: Callback): void; infoArchive(options: {}): Promise; /** @param file Filename (will read synchronously), Buffer or stream */ putArchive( file: string | Buffer | NodeJS.ReadableStream, options: {}, callback: Callback, ): void; putArchive(file: string | Buffer | NodeJS.ReadableStream, options: {}): Promise; logs(options: ContainerLogsOptions, callback: Callback): void; logs(callback: Callback): void; logs(options?: ContainerLogsOptions): Promise; stats(options: {}, callback: Callback): void; stats(callback: Callback): void; stats(options?: {}): Promise; attach(options: {}, callback: Callback): void; attach(options: {}): Promise; } class Image { constructor(modem: any, name: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; history(callback: Callback): void; history(): Promise; get(callback: Callback): void; get(): Promise; push(options: {}, callback: Callback): void; push(callback: Callback): void; push(options?: {}): Promise; tag(options: {}, callback: Callback): void; tag(callback: Callback): void; tag(options?: {}): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; } class Volume { constructor(modem: any, name: string); modem: any; name: string; inspect(callback: Callback): void; inspect(): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; } class Service { constructor(modem: any, id: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; update(options: {}, callback: Callback): void; update(options: {}): Promise; logs(options: ContainerLogsOptions, callback: Callback): void; logs(callback: Callback): void; logs(options?: ContainerLogsOptions): Promise; } class Task { constructor(modem: any, id: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; } class Node { constructor(modem: any, id: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; update(options: {}, callback: Callback): void; update(callback: Callback): void; update(options?: {}): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; } class Plugin { constructor(modem: any, name: string, remote?: any); modem: any; name: string; remote: any; inspect(callback: Callback): void; inspect(): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; privileges(callback: Callback): void; privileges(): Promise; pull(options: {}, callback: Callback): void; pull(options: {}): Promise; enable(options: {}, callback: Callback): void; enable(callback: Callback): void; enable(options?: {}): Promise; disable(options: {}, callback: Callback): void; disable(callback: Callback): void; disable(options?: {}): Promise; push(options: {}, callback: Callback): void; push(callback: Callback): void; push(options?: {}): Promise; configure(options: {}, callback: Callback): void; configure(callback: Callback): void; configure(options?: {}): Promise; upgrade(auth: any, options: {}, callback: Callback): void; upgrade(auth: any, callback: Callback): void; upgrade(auth: any, options?: {}): Promise; } class Secret { constructor(modem: any, id: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; update(options: {}, callback: Callback): void; update(callback: Callback): void; update(options?: {}): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; } class Network { constructor(modem: any, id: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; connect(options: {}, callback: Callback): void; connect(callback: Callback): void; connect(options?: {}): Promise; disconnect(options: {}, callback: Callback): void; disconnect(callback: Callback): void; disconnect(options?: {}): Promise; } class Exec { constructor(modem: any, id: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; start(options: ExecStartOptions, callback: Callback): void; start(options: ExecStartOptions): Promise; resize(options: {}, callback: Callback): void; resize(options: {}): Promise; } class Config { constructor(modem: any, id: string); modem: any; id: string; inspect(callback: Callback): void; inspect(): Promise; update(options: {}, callback: Callback): void; update(callback: Callback): void; update(options?: {}): Promise; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; remove(options?: {}): Promise; } interface ImageInfo { Id: string; ParentId: string; RepoTags: string[]; RepoDigests?: string[]; Created: number; Size: number; VirtualSize: number; Labels: { [label: string]: string }; } interface ContainerInfo { Id: string; Names: string[]; Image: string; ImageID: string; Command: string; Created: number; Ports: Port[]; Labels: { [label: string]: string }; State: string; Status: string; HostConfig: { NetworkMode: string; }; NetworkSettings: { Networks: { [networkType: string]: NetworkInfo }; }; Mounts: Array<{ Name?: string; Type: string; Source: string; Destination: string; Driver?: string; Mode: string; RW: boolean; Propagation: string; }>; } interface Port { IP: string; PrivatePort: number; PublicPort: number; Type: string; } interface NetworkInfo { IPAMConfig?: any; Links?: any; Aliases?: any; NetworkID: string; EndpointID: string; Gateway: string; IPAddress: string; IPPrefixLen: number; IPv6Gateway: string; GlobalIPv6Address: string; GlobalIPv6PrefixLen: number; MacAddress: string; } // Information returned from inspecting a network interface NetworkInspectInfo { Name: string; Id: string; Created: string; Scope: string; Driver: string; EnableIPv6: boolean; IPAM?: IPAM; Internal: boolean; Attachable: boolean; Ingress: boolean; Containers?: { [id: string]: NetworkContainer }; Options?: { [key: string]: string }; Labels?: { [key: string]: string }; } interface NetworkCreateOptions { Name: string; CheckDuplicate?: boolean; Driver?: string; Internal?: boolean; Attachable?: boolean; Ingress?: boolean; IPAM?: IPAM; EnableIPv6?: boolean; Options?: { [option: string]: string}; Labels?: { [label: string]: string}; } interface NetworkContainer { Name: string; EndpointID: string; MacAddress: string; IPv4Address: string; IPv6Address: string; } /* tslint:disable:interface-name */ interface IPAM { Driver: string; Config?: Array<{[key: string]: string }>; Options?: { [key: string]: string }; } /* tslint:enable:interface-name */ interface VolumeInspectInfo { Name: string; Driver: string; Mountpoint: string; Status?: { [key: string]: string }; Labels: { [key: string]: string }; Scope: 'local' | 'global'; // Field is always present, but sometimes is null Options: { [key: string]: string } | null; // Field is sometimes present, and sometimes null UsageData?: { Size: number; RefCount: number; } | null; } interface ContainerInspectInfo { Id: string; Created: string; Path: string; Args: string[]; State: { Status: string; Running: boolean; Paused: boolean; Restarting: boolean; OOMKilled: boolean; Dead: boolean; Pid: number; ExitCode: number; Error: string; StartedAt: string; FinishedAt: string; Health?: { Status: string; FailingStreak: number; Log: Array<{ Start: string; End: string; ExitCode: number; Output: string; }>; }; }; Image: string; ResolvConfPath: string; HostnamePath: string; HostsPath: string; LogPath: string; Name: string; RestartCount: number; Driver: string; Platform: string; MountLabel: string; ProcessLabel: string; AppArmorProfile: string; ExecIDs?: string[]; HostConfig: HostConfig; GraphDriver: { Name: string; Data: { DeviceId: string; DeviceName: string; DeviceSize: string; }; }; Mounts: Array<{ Name?: string; Source: string; Destination: string; Mode: string; RW: boolean; Propagation: string; }>; Config: { Hostname: string; Domainname: string; User: string; AttachStdin: boolean; AttachStdout: boolean; AttachStderr: boolean; ExposedPorts: { [portAndProtocol: string]: {} }; Tty: boolean; OpenStdin: boolean; StdinOnce: boolean; Env: string[]; Cmd: string[]; Image: string; Volumes: { [volume: string]: {} }; WorkingDir: string; Entrypoint?: string | string[]; OnBuild?: any; Labels: { [label: string]: string }; }; NetworkSettings: { Bridge: string; SandboxID: string; HairpinMode: boolean; LinkLocalIPv6Address: string; LinkLocalIPv6PrefixLen: number; Ports: { [portAndProtocol: string]: Array<{ HostIp: string; HostPort: string; }>; }; SandboxKey: string; SecondaryIPAddresses?: any; SecondaryIPv6Addresses?: any; EndpointID: string; Gateway: string; GlobalIPv6Address: string; GlobalIPv6PrefixLen: number; IPAddress: string; IPPrefixLen: number; IPv6Gateway: string; MacAddress: string; Networks: { [type: string]: { IPAMConfig?: any; Links?: any; Aliases?: any; NetworkID: string; EndpointID: string; Gateway: string; IPAddress: string; IPPrefixLen: number; IPv6Gateway: string; GlobalIPv6Address: string; GlobalIPv6PrefixLen: number; MacAddress: string; }; }; Node?: { ID: string; IP: string; Addr: string; Name: string; Cpus: number; Memory: number; Labels: any; }; }; } interface NetworkStats { [name: string]: { rx_bytes: number; rx_dropped: number; rx_errors: number; rx_packets: number; tx_bytes: number; tx_dropped: number; tx_errors: number; tx_packets: number; }; } interface CPUStats { cpu_usage: { percpu_usage: number[]; usage_in_usermode: number; total_usage: number; usage_in_kernelmode: number; }; system_cpu_usage: number; online_cpus: number; throttling_data: { periods: number; throttled_periods: number; throttled_time: number; }; } interface MemoryStats { stats: { total_pgmajfault: number; cache: number; mapped_file: number; total_inactive_file: number; pgpgout: number; rss: number; total_mapped_file: number; writeback: number; unevictable: number; pgpgin: number; total_unevictable: number; pgmajfault: number; total_rss: number; total_rss_huge: number; total_writeback: number; total_inactive_anon: number; rss_huge: number; hierarchical_memory_limit: number; total_pgfault: number; total_active_file: number; active_anon: number; total_active_anon: number; total_pgpgout: number; total_cache: number; inactive_anon: number; active_file: number; pgfault: number; inactive_file: number; total_pgpgin: number; }; max_usage: number; usage: number; failcnt: number; limit: number; } interface ContainerStats { read: string; pid_stats: { current: number; }; networks: NetworkStats; memory_stats: MemoryStats; blkio_stats: {}; cpu_stats: CPUStats; precpu_stats: CPUStats; } interface HostConfig { AutoRemove?: boolean; Binds?: string[]; ContainerIDFile?: string; LogConfig?: { Type: string; Config: any; }; NetworkMode?: string; PortBindings?: any; RestartPolicy?: RestartPolicy; VolumeDriver?: string; VolumesFrom?: any; Mounts?: MountConfig; CapAdd?: any; CapDrop?: any; Dns?: any[]; DnsOptions?: any[]; DnsSearch?: any[]; ExtraHosts?: any; GroupAdd?: string[]; IpcMode?: string; Cgroup?: string; Links?: any; OomScoreAdj?: number; PidMode?: string; Privileged?: boolean; PublishAllPorts?: boolean; ReadonlyRootfs?: boolean; SecurityOpt?: any; StorageOpt?: { [option: string]: string }; Tmpfs?: { [dir: string]: string }; UTSMode?: string; UsernsMode?: string; ShmSize?: number; Sysctls?: { [index: string]: string }; Runtime?: string; ConsoleSize?: number[]; Isolation?: string; MaskedPaths?: string[]; ReadonlyPaths?: string[]; CpuShares?: number; CgroupParent?: string; BlkioWeight?: number; BlkioWeightDevice?: any; BlkioDeviceReadBps?: any; BlkioDeviceWriteBps?: any; BlkioDeviceReadIOps?: any; BlkioDeviceWriteIOps?: any; CpuPeriod?: number; CpuQuota?: number; CpusetCpus?: string; CpusetMems?: string; Devices?: any; DeviceCgroupRules?: string[]; DeviceRequests?: DeviceRequest[]; DiskQuota?: number; KernelMemory?: number; Memory?: number; MemoryReservation?: number; MemorySwap?: number; MemorySwappiness?: number; OomKillDisable?: boolean; PidsLimit?: number; Ulimits?: any; } interface ImageInspectInfo { Id: string; RepoTags: string[]; RepoDigests: string[]; Parent: string; Comment: string; Created: string; Container: string; ContainerConfig: { Hostname: string; Domainname: string; User: string; AttachStdin: boolean; AttachStdout: boolean; AttachStderr: boolean; ExposedPorts: { [portAndProtocol: string]: {} }; Tty: boolean; OpenStdin: boolean; StdinOnce: boolean; Env: string[]; Cmd: string[]; ArgsEscaped: boolean; Image: string; Volumes: { [path: string]: {} }; WorkingDir: string; Entrypoint?: string | string[]; OnBuild?: any[]; Labels: { [label: string]: string }; }; DockerVersion: string; Author: string; Config: { Hostname: string; Domainname: string; User: string; AttachStdin: boolean; AttachStdout: boolean; AttachStderr: boolean; ExposedPorts: { [portAndProtocol: string]: {} }; Tty: boolean; OpenStdin: boolean; StdinOnce: boolean; Env: string[]; Cmd: string[]; ArgsEscaped: boolean; Image: string; Volumes: { [path: string]: {} }; WorkingDir: string; Entrypoint?: string | string[]; OnBuild: any[]; Labels: { [label: string]: string }; }; Architecture: string; Os: string; Size: number; VirtualSize: number; GraphDriver: { Name: string; Data: { DeviceId: string; DeviceName: string; DeviceSize: string; }; }; RootFS: { Type: string; Layers?: string[]; BaseLayer?: string; }; } interface AuthConfig { username: string; password: string; serveraddress: string; email?: string; } interface PortBinding { HostIp?: string; HostPort?: string; } interface PortMap { [key: string]: PortBinding[]; } interface RestartPolicy { Name: string; MaximumRetryCount?: number; } type LoggingDriverType = | 'json-file' | 'syslog' | 'journald' | 'gelf' | 'fluentd' | 'awslogs' | 'splunk' | 'etwlogs' | 'none'; interface LogConfig { Type: LoggingDriverType; Config?: { [key: string]: string }; } interface DeviceMapping { PathOnHost: string; PathInContainer: string; CgroupPermissions: string; } interface DeviceRequest { Driver?: string; Count?: number; DeviceIDs?: string[]; Capabilities?: string[][]; Options?: { [key: string]: string }; } /* tslint:disable:interface-name */ interface IPAMConfig { IPv4Address?: string; IPv6Address?: string; LinkLocalIPs?: string[]; } /* tslint:enable:interface-name */ interface EndpointSettings { IPAMConfig?: IPAMConfig; Links?: string[]; Aliases?: string[]; NetworkID?: string; EndpointID?: string; Gateway?: string; IPAddress?: string; IPPrefixLen?: number; IPv6Gateway?: string; GlobalIPv6Address?: string; GlobalIPV6PrefixLen?: number; MacAddress?: string; DriverOpts?: { [key: string]: string }; } interface EndpointsConfig { [key: string]: EndpointSettings; } interface ExecCreateOptions { AttachStdin?: boolean; AttachStdout?: boolean; AttachStderr?: boolean; DetachKeys?: string; Tty?: boolean; Env?: string[]; Cmd?: string[]; Privileged?: boolean; User?: string; WorkingDir?: string; } interface ExecInspectInfo { CanRemove: boolean; DetachKeys: string; ID: string; Running: boolean; ExitCode: number | null; ProcessConfig: { privileged: boolean; user: string; tty: boolean; entrypoint: string; arguments: string[]; }; OpenStdin: boolean; OpenStderr: boolean; OpenStdout: boolean; ContainerID: string; Pid: number; } interface ExecStartOptions { // hijack and stdin are used by docker-modem hijack?: boolean; stdin?: boolean; // Detach and Tty are used by Docker's API Detach?: boolean; Tty?: boolean; } type MountType = 'bind' | 'volume' | 'tmpfs'; type MountConsistency = 'default' | 'consistent' | 'cached' | 'delegated'; type MountPropagation = 'private' | 'rprivate' | 'shared' | 'rshared' | 'slave' | 'rslave'; interface MountSettings { Target: string; Source: string; Type: MountType; ReadOnly?: boolean; Consistency?: MountConsistency; BindOptions?: { Propagation: MountPropagation; }; VolumeOptions?: { NoCopy: boolean; Labels: { [label: string]: string }; DriverConfig: { Name: string; Options: { [option: string]: string }; }; }; TmpfsOptions?: { SizeBytes: number; Mode: number; }; } type MountConfig = MountSettings[]; interface ContainerCreateOptions { name?: string; Hostname?: string; Domainname?: string; User?: string; AttachStdin?: boolean; AttachStdout?: boolean; AttachStderr?: boolean; Tty?: boolean; OpenStdin?: boolean; StdinOnce?: boolean; Env?: string[]; Cmd?: string[]; Entrypoint?: string | string[]; Image?: string; Labels?: { [label: string]: string }; Volumes?: { [volume: string]: {} }; WorkingDir?: string; NetworkDisabled?: boolean; MacAddress?: boolean; ExposedPorts?: { [port: string]: {} }; StopSignal?: string; StopTimeout?: number; HostConfig?: HostConfig; NetworkingConfig?: { EndpointsConfig?: EndpointsConfig; }; } interface KeyObject { pem: string | Buffer; passphrase?: string; } interface DockerOptions { socketPath?: string; host?: string; port?: number | string; username?: string; ca?: string | string[] | Buffer | Buffer[]; cert?: string | string[] | Buffer | Buffer[]; key?: string | string[] | Buffer | Buffer[] | KeyObject[]; protocol?: 'https' | 'http' | 'ssh'; timeout?: number; version?: string; sshAuthAgent?: string; Promise?: typeof Promise; } interface GetEventsOptions { since?: number; until?: number; filters?: | string | { config?: string; container?: string[]; daemon?: string[]; event?: string[]; image?: string[]; label?: string[]; network?: string[]; node?: string[]; plugin?: string[]; scope?: Array<'local' | 'swarm'>; secret?: string[]; service?: string[]; type?: Array< | 'container' | 'image' | 'volume' | 'network' | 'daemon' | 'plugin' | 'service' | 'node' | 'secret' | 'config' >; volume?: string[]; }; } interface SecretVersion { Index: number; } interface ServiceSpec { Name: string; } interface SecretInfo { ID: string; Version: SecretVersion; CreatedAt: string; UpdatedAt?: string; Spec?: ServiceSpec; } interface ConfigInfo { ID: string; Version: SecretVersion; CreatedAt: string; UpdatedAt?: string; Spec?: ConfigSpec; } interface ConfigSpec { Name: string; Labels: { [label: string]: string }; Data: string; } interface ConfigVersion { Index: number; } interface PluginInfo { Id?: string; Name: string; Enabled: boolean; Settings: PluginSettings; PluginReference?: string; Config: PluginConfig; } type PluginInspectInfo = PluginInfo; interface PluginSettings { Mounts: PluginMount[]; Env: string[]; Args: string[]; Devices: PluginDevice[]; } interface PluginConfig { Description: string; Documentation: string; Interface: any; Entrypoint: string[]; WorkDir: string; User?: User; Network: Network; Linux: Linux; PropagatedMount: string; Mounts: PluginMount[]; Env: PluginEnv[]; Args: Args; rootfs: any; } interface Interface { Types: PluginInterfaceType[]; Socket: string; } interface PluginInterfaceType { Prefix: string; Capability: string; Version: string; } interface PluginMount { Name: string; Description: string; Settable: string[]; Source: string; Destination: string; Type: string; Options: string[]; } interface Linux { Capabilities: string[]; AllowAllDevices: boolean; Devices: PluginDevice[]; } interface PluginDevice { Name: string; Description: string; Settable: string[]; Path: string; } interface Network { Type: string; } interface PluginEnv { Name: string; Description: string; Settable: string[]; Value: string; } interface Args { Name: string; Description: string; Settable: string[]; Value: string; } interface User { UID: number; GID: number; } interface ImageRemoveInfo { Untagged: string; Deleted: string; } interface PruneImagesInfo { ImagesDeleted: ImageRemoveInfo[]; SpaceReclaimed: number; } interface PruneVolumesInfo { VolumesDeleted: string[]; SpaceReclaimed: number; } interface PruneContainersInfo { ContainersDeleted: string[]; SpaceReclaimed: number; } interface PruneNetworksInfo { NetworksDeleted: string[]; } interface ContainerLogsOptions { stdout?: boolean; stderr?: boolean; follow?: boolean; since?: number; details?: boolean; tail?: number; timestamps?: boolean; } interface ImageBuildContext { context: string; src: string[]; } interface DockerVersion { ApiVersion: string; Arch: string; BuildTime: Date; Components: Array<{ Details: { ApiVersion: string; Arch: string; BuildTime: Date; Experimental: string; GitCommit: string; GoVersion: string; KernelVersion: string; Os: string; }; Name: string; Version: string; }>; GitCommit: string; GoVersion: string; KernelVersion: string; MinAPIVersion: string; Os: string; Platform: { Name: string; }; Version: string; } } type Callback = (error?: any, result?: T) => void; declare class Dockerode { constructor(options?: Dockerode.DockerOptions); createContainer(options: Dockerode.ContainerCreateOptions, callback: Callback): void; createContainer(options: Dockerode.ContainerCreateOptions): Promise; createImage(options: {}, callback: Callback): void; createImage(auth: any, options: {}, callback: Callback): void; createImage(options: {}): Promise; createImage(auth: any, options: {}): Promise; loadImage(file: string | NodeJS.ReadableStream, options: {}, callback: Callback): void; loadImage(file: string | NodeJS.ReadableStream, callback: Callback): void; loadImage(file: string | NodeJS.ReadableStream, options?: {}): Promise; importImage(file: string | NodeJS.ReadableStream, options: {}, callback: Callback): void; importImage(file: string | NodeJS.ReadableStream, callback: Callback): void; importImage(file: string | NodeJS.ReadableStream, options?: {}): Promise; checkAuth(options: any, callback: Callback): void; checkAuth(options: any): Promise; buildImage( file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext, options: {}, callback: Callback, ): void; buildImage( file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext, callback: Callback, ): void; buildImage( file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext, options?: {}, ): Promise; getContainer(id: string): Dockerode.Container; getImage(name: string): Dockerode.Image; getVolume(name: string): Dockerode.Volume; getPlugin(name: string, remote: any): Dockerode.Plugin; getService(id: string): Dockerode.Service; getTask(id: string): Dockerode.Task; getNode(id: string): Dockerode.Node; getNetwork(id: string): Dockerode.Network; getSecret(id: string): Dockerode.Secret; getExec(id: string): Dockerode.Exec; getConfig(id: string): Dockerode.Config; listContainers(options: {}, callback: Callback): void; listContainers(callback: Callback): void; listContainers(options?: {}): Promise; listImages(options: {}, callback: Callback): void; listImages(callback: Callback): void; listImages(options?: {}): Promise; listServices(options: {}, callback: Callback): void; listServices(callback: Callback): void; listServices(options?: {}): Promise; listNodes(options: {}, callback: Callback): void; listNodes(callback: Callback): void; listNodes(options?: {}): Promise; listTasks(options: {}, callback: Callback): void; listTasks(callback: Callback): void; listTasks(options?: {}): Promise; listSecrets(options: {}, callback: Callback): void; listSecrets(callback: Callback): void; listSecrets(options?: {}): Promise; listPlugins(options: {}, callback: Callback): void; listPlugins(callback: Callback): void; listPlugins(options?: {}): Promise; listVolumes( options: {}, callback: Callback<{ Volumes: Dockerode.VolumeInspectInfo[]; Warnings: string[]; }>, ): void; listVolumes( callback: Callback<{ Volumes: Dockerode.VolumeInspectInfo[]; Warnings: string[]; }>, ): void; listVolumes(options?: {}): Promise<{ Volumes: Dockerode.VolumeInspectInfo[]; Warnings: string[]; }>; listNetworks(options: {}, callback: Callback): void; listNetworks(callback: Callback): void; listNetworks(options?: {}): Promise; listConfigs(options: {}, callback: Callback): void; listConfigs(callback: Callback): void; listConfigs(options?: {}): Promise; createSecret(options: {}, callback: Callback): void; createSecret(options: {}): Promise; createConfig(options: {}, callback: Callback): void; createConfig(options: {}): Promise; createPlugin(options: {}, callback: Callback): void; createPlugin(options: {}): Promise; createVolume(options: {}, callback: Callback): void; createVolume(options: {}): Promise; createService(options: {}, callback: Callback): void; createService(options: {}): Promise; createNetwork(options: Dockerode.NetworkCreateOptions, callback: Callback): void; createNetwork(options: Dockerode.NetworkCreateOptions): Promise; searchImages(options: {}, callback: Callback): void; searchImages(options: {}): Promise; pruneImages(options: {}, callback: Callback): void; pruneImages(callback: Callback): void; pruneImages(options?: {}): Promise; pruneContainers(options: {}, callback: Callback): void; pruneContainers(callback: Callback): void; pruneContainers(options?: {}): Promise; pruneVolumes(options: {}, callback: Callback): void; pruneVolumes(callback: Callback): void; pruneVolumes(options?: {}): Promise; pruneNetworks(options: {}, callback: Callback): void; pruneNetworks(callback: Callback): void; pruneNetworks(options?: {}): Promise; info(callback: Callback): void; info(): Promise; df(callback: Callback): void; df(): Promise; version(callback: Callback): void; version(): Promise; ping(callback: Callback): void; ping(): Promise; getEvents(options: Dockerode.GetEventsOptions, callback: Callback): void; getEvents(callback: Callback): void; getEvents(options?: Dockerode.GetEventsOptions): Promise; pull(repoTag: string, options: {}, callback: Callback, auth?: {}): Dockerode.Image; pull(repoTag: string, options?: {}): Promise; run( image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], createOptions: {}, startOptions: {}, callback: Callback, ): events.EventEmitter; run( image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], startOptions: {}, callback: Callback, ): events.EventEmitter; run( image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], callback: Callback, ): events.EventEmitter; run( image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], createOptions: {}, callback: Callback, ): events.EventEmitter; run( image: string, cmd: string[], outputStream: NodeJS.WritableStream | NodeJS.WritableStream[], createOptions?: {}, startOptions?: {}, ): Promise; swarmInit(options: {}, callback: Callback): void; swarmInit(options: {}): Promise; swarmJoin(options: {}, callback: Callback): void; swarmJoin(options: {}): Promise; swarmLeave(options: {}, callback: Callback): void; swarmLeave(options: {}): Promise; swarmUpdate(options: {}, callback: Callback): void; swarmUpdate(options: {}): Promise; swarmInspect(callback: Callback): void; swarmInspect(): Promise; modem: any; } export = Dockerode;