import type { BlueprintHelper } from "../../blueprint/Helpers/BlueprintHelper";
import type { DefaultSeverity, Logger, OperationSeverity } from "../../common/Logging";
import type { Project } from "../Types";
import type { CreateProjectParams } from "./ProjectFromTemplate";
export interface ProjectOptions {
    userConsole?: Logger<DefaultSeverity | OperationSeverity>;
    logger?: Logger;
}
export declare const defaultProjectOptions: ProjectOptions;
/**
 * Creates a project-api, that used to control deployments and manage all project
 * related tasks. \
 * Nowadays this API is mostly used for loading the project from the disk.
 */
export interface ProjectClass {
    new (project: Project, options?: Partial<ProjectOptions>): ProjectInstance;
    get(options?: Partial<ProjectOptions>): Promise<ProjectInstance>;
    fromTemplate(params: CreateProjectParams, options?: Partial<ProjectOptions>): Promise<ProjectInstance>;
}
export interface ProjectInstance extends Readonly<Project> {
    readonly rootDir: string;
    userConsole: Logger<DefaultSeverity | OperationSeverity>;
    logger: Logger;
    readonly blueprintHelpers: BlueprintHelper[];
    readonly project: Readonly<Project>;
}
export interface GetExtraDataOptions {
    successfulDeployOnly: boolean;
}
export declare const defaultGetExtraDataOptions: GetExtraDataOptions;
export interface GetLastVersionOptions {
    successfullyDeployed: boolean;
    hasExtraData: boolean;
}
export declare const defaultGetLastVersionOptions: GetLastVersionOptions;
