import type { IBuild } from "../entities";
import * as entities from "../entities";
import * as interfaces from "../interfaces";
import type { BuildStatus, DeployStatus } from "../interfaces/SystemTypes";
import * as buildModule from "../modules/build";
import { BuildService } from "../services/BuildService";
import BaseController from "./BaseController";
export default class BuildController extends BaseController<IBuild, BuildService> {
    constructor();
    /**
     * List of builds
     */
    read(queryParams?: interfaces.IGetQueryParams): Promise<interfaces.ResponseData & interfaces.IResponsePagination>;
    create(body: entities.BuildDto, queryParams?: interfaces.IPostQueryParams): Promise<interfaces.ResponseData>;
    update(body: entities.BuildDto, queryParams?: interfaces.IPostQueryParams): Promise<interfaces.ResponseData>;
    delete(queryParams?: interfaces.IDeleteQueryParams): Promise<interfaces.ResponseData>;
    getLogs(queryParams?: {
        slug: string;
    }): Promise<interfaces.ResponseData>;
    /**
     * Check status then build container image finish.
     */
    getStatus(queryParams?: {
        slug: string;
    }): Promise<interfaces.ResponseData>;
    /**
     * Create a new {Build} instance, then start building container image.
     */
    startBuild(body: buildModule.StartBuildParams): Promise<interfaces.ResponseData>;
    stopBuild(body: {
        slug: string;
        status?: BuildStatus;
        deployStatus?: DeployStatus;
    }): Promise<interfaces.ResponseData>;
    /**
     * Create a new {Build} instance, then start building container image.
     */
    rerunBuild(body: buildModule.RerunBuildParams, queryParams?: {
        /**
         * Build's slug
         */
        slug: string;
        /**
         * Build's ID
         */
        _id: string;
    }): Promise<interfaces.ResponseData>;
}
//# sourceMappingURL=BuildController.d.ts.map