/// <reference types="mongoose/types/aggregate" />
/// <reference types="mongoose/types/callback" />
/// <reference types="mongoose/types/collection" />
/// <reference types="mongoose/types/connection" />
/// <reference types="mongoose/types/cursor" />
/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/expressions" />
/// <reference types="mongoose/types/helpers" />
/// <reference types="mongoose/types/middlewares" />
/// <reference types="mongoose/types/indexes" />
/// <reference types="mongoose/types/models" />
/// <reference types="mongoose/types/mongooseoptions" />
/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/populate" />
/// <reference types="mongoose/types/query" />
/// <reference types="mongoose/types/schemaoptions" />
/// <reference types="mongoose/types/schematypes" />
/// <reference types="mongoose/types/session" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/utility" />
/// <reference types="mongoose/types/validation" />
/// <reference types="mongoose/types/virtuals" />
/// <reference types="mongoose/types/inferschematype" />
import type { Types } from "mongoose";
import { Schema } from "mongoose";
import type { AppConfig, HiddenBodyKeys } from "../interfaces";
import type { KubeEnvironmentVariable } from "../interfaces/EnvironmentVariable";
import type { BuildStatus, DeployStatus } from "../interfaces/SystemTypes";
import type { IBase } from "./Base";
import type { IApp, IBuild } from "./index";
export interface IRelease extends IBase {
    name?: string;
    image?: string;
    buildTag?: string;
    buildNumber?: number;
    cliVersion?: string;
    appVersion?: string;
    /**
     * Targeted environment.
     * @example dev, prod, staging, canary,...
     */
    env?: string;
    /**
     * Environment variables
     */
    envVars?: KubeEnvironmentVariable[];
    /**
     * ONLY PRE-RELEASE - Environment variables
     */
    prereleaseEnvironment?: any[] | string;
    /**
     * @deprecated
     * Old "diginext.json"
     */
    diginext?: any;
    appConfig?: AppConfig;
    namespace?: string;
    /**
     * @deprecated
     * Use `deploymentYaml` instead.
     */
    prodYaml?: string;
    preYaml?: string;
    prereleaseUrl?: string;
    productionUrl?: string;
    deploymentYaml?: string;
    endpoint?: string;
    createdBy?: string;
    branch?: string;
    provider?: string;
    /**
     * Cluster's slug
     */
    cluster?: string;
    projectSlug?: string;
    appSlug?: string;
    providerProjectId?: string;
    buildStatus?: BuildStatus;
    status?: DeployStatus;
    active?: boolean;
    /**
     * Release revision message
     */
    message?: string;
    /**
     * Deploy start time
     */
    startTime?: Date;
    /**
     * Deploy end time
     */
    endTime?: Date;
    /**
     * Deploy duration in miliseconds
     */
    duration?: number;
    /**
     * URL of the webpage screenshot
     */
    screenshot?: string;
    /**
     * ID of the build
     *
     * @remarks This can be populated to {IBuild} data
     */
    build?: Types.ObjectId | IBuild | string;
    /**
     * ID of the app
     *
     * @remarks This can be populated to {IApp} data
     */
    app?: Types.ObjectId | IApp | string;
}
export type ReleaseDto = Omit<IRelease, keyof HiddenBodyKeys>;
export declare const releaseSchema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    collection: string;
    timestamps: true;
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}>> & import("mongoose").FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}> & {
    _id: Types.ObjectId;
}>;
export declare const ReleaseModel: import("mongoose").Model<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}, {}, {}, {}, import("mongoose").Document<unknown, {}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}> & {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
} & {
    _id: Types.ObjectId;
}, Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    collection: string;
    timestamps: true;
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}>> & import("mongoose").FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    envVars: {
        name?: string;
        value?: string;
    }[];
    public: boolean;
    createdAt: Date;
    updatedAt: Date;
    prereleaseEnvironment: string[];
    diginext?: string;
    workspace?: Types.ObjectId;
    workspaceId?: Types.ObjectId;
    name?: string;
    slug?: string;
    env?: string;
    project?: Types.ObjectId;
    projectId?: Types.ObjectId;
    projectSlug?: string;
    namespace?: string;
    buildTag?: string;
    app?: Types.ObjectId;
    appSlug?: string;
    cluster?: string;
    provider?: string;
    message?: string;
    status?: string;
    image?: string;
    owner?: Types.ObjectId;
    endpoint?: string;
    active?: boolean;
    metadata?: any;
    ownerSlug?: string;
    ownerId?: Types.ObjectId;
    workspaceSlug?: string;
    updatedBy?: Types.ObjectId;
    updatedById?: Types.ObjectId;
    deletedBy?: Types.ObjectId;
    deletedById?: Types.ObjectId;
    deletedAt?: Date;
    migratedAt?: Date;
    createdBy?: string;
    buildNumber?: number;
    appVersion?: string;
    cliVersion?: string;
    deploymentYaml?: string;
    prereleaseUrl?: string;
    screenshot?: string;
    build?: Types.ObjectId;
    appConfig?: any;
    prodYaml?: string;
    preYaml?: string;
    productionUrl?: string;
    branch?: string;
    providerProjectId?: string;
    buildStatus?: string;
    startTime?: Date;
    endTime?: Date;
    duration?: number;
}> & {
    _id: Types.ObjectId;
}>>;
//# sourceMappingURL=Release.d.ts.map