import { DockerOptions } from "../docs/docs";
import ContainersManager from "./containers/ContainersManager";
import NetworksManager from "./networks/NetworksManager";
import VolumesManager from "./volumes/VolumesManager";
import ImagesManager from "./images/ImagesManager";
import DockerfileTemplate from "./containers/templates/assets/builders/Dockerfile/DockerfileTemplate";
import DockerfileBuilder from "./containers/templates/assets/builders/Dockerfile/DockerfileBuilder";
declare class Docker {
    #private;
    constructor(configs?: DockerOptions);
    /**
     * Retrieves the containers manager associated with the Docker instance.
     * @returns {ContainersManager} An instance of the ContainersManager class, providing APIs to manage containers within the Docker daemon.
     */
    get containers(): ContainersManager;
    /**
     * Retrieves the networks manager associated with the Docker instance.
     * @returns {NetworksManager} An instance of the NetworksManager class, providing APIs to manage networks within the Docker daemon.
     */
    get networks(): NetworksManager;
    /**
     * Retrieves the volumes manager associated with the Docker instance.
     * @returns {VolumesManager} An instance of the VolumesManager class, providing APIs to manage volumes within the Docker daemon.
     */
    get volumes(): VolumesManager;
    /**
     * Retrieves the images manager associated with the Docker instance.
     * @returns {ImagesManager} An instance of the ImagesManager class, providing APIs to manage images within the Docker daemon.
     */
    get images(): ImagesManager;
    /**
     * Retrieves the templates available for generating.
     * @since v1.0.3
     */
    readonly builders: Readonly<{
        /**
         * Retrieves a Dockerfile builder, allowing you to generate a Dockerfile used to build a Docker image.
         * @returns {DockerfileBuilder} A Dockerfile builder that can be used to generate a Dockerfile.
         * @since v1.0.3
         */
        dockerfile: () => DockerfileBuilder;
        /**
         * Retrieves a Dockerfile template builder with default settings.
         *
         * This method provides an easy way to create a Dockerfile template
         * without complex configuration. It is suitable for users who
         * want to quickly generate a Dockerfile using standard settings.
         *
         * For advanced users, we recommend using the `dockerfile` method
         * to create a custom Dockerfile template.
         *
         * @returns {DockerfileTemplate} A Dockerfile template builder that can be used to generate a Dockerfile.
         * @since v1.0.3
         */
        easyDockerfileTemplate: () => DockerfileTemplate;
    }>;
    /**
     * Retrieves the templates available for generating.
     * @returns {Object} An object containing the available templates.
     */
    readonly templates: Readonly<{
        /**
         * Retrieves a Dockerfile template builder, allowing you to generate a Dockerfile used to build a Docker image.
         * @returns {DockerfileTemplate} A Dockerfile template builder that can be used to generate a Dockerfile.
         * @deprecated
         * Use `builders.easyDockerfileTemplate` instead, or use
         * `builders.dockerfile` for advanced users.
         *
         * Deprecated since v1.0.3.
         */
        dockerfile: () => DockerfileTemplate;
    }>;
}
export default Docker;
