import * as plugins from './plugins.js';
import * as interfaces from './interfaces/index.js';
import { DockerHost } from './classes.host.js';
/**
 * represents a docker image on the remote docker host
 */
export declare class DockerImage {
    static getImages(dockerHost: DockerHost): Promise<DockerImage[]>;
    static getImageByName(dockerHost: DockerHost, imageNameArg: string): Promise<DockerImage>;
    static createFromRegistry(dockerHostArg: DockerHost, optionsArg: {
        creationObject: interfaces.IImageCreationDescriptor;
    }): Promise<DockerImage>;
    /**
     *
     * @param dockerHostArg
     * @param tarStreamArg
     */
    static createFromTarStream(dockerHostArg: DockerHost, optionsArg: {
        creationObject: interfaces.IImageCreationDescriptor;
        tarStream: plugins.smartstream.stream.Readable;
    }): Promise<DockerImage>;
    static tagImageByIdOrName(dockerHost: DockerHost, idOrNameArg: string, newTagArg: string): Promise<void>;
    static buildImage(dockerHostArg: DockerHost, dockerImageTag: any): Promise<void>;
    dockerHost: DockerHost;
    /**
     * the tags for an image
     */
    Containers: number;
    Created: number;
    Id: string;
    Labels: interfaces.TLabels;
    ParentId: string;
    RepoDigests: string[];
    RepoTags: string[];
    SharedSize: number;
    Size: number;
    VirtualSize: number;
    constructor(dockerHostArg: any, dockerImageObjectArg: any);
    /**
     * tag an image
     * @param newTag
     */
    tagImage(newTag: any): Promise<void>;
    /**
     * pulls the latest version from the registry
     */
    pullLatestImageFromRegistry(): Promise<boolean>;
    getVersion(): Promise<string>;
    /**
     * exports an image to a tar ball
     */
    exportToTarStream(): Promise<plugins.smartstream.stream.Readable>;
}
