UNPKG

@altostra/core

Version:

Core library for shared types and logic

42 lines (41 loc) 1.41 kB
import type { Blueprint, BlueprintData } from "../../blueprint"; import type { Project } from "../Types"; export interface IProjectManager { /** * @spec * Determines whether the manager is in a state to perform operations. * False value indicates that all operations will fail if attempted. */ canOperate: boolean; /** * @spec * Determines whether a project is available to perform operations or must be initialized. * False indicates that all operations that depend on an existing project will fail, * except for project initialization. */ projectAvailable: Promise<boolean>; /** * @spec * Inits a new project and creates all required structures for it. * If a project is determined to already be initialized, does nothing and returns successfully. */ initProject(projectInitializer?: ProjectInitializer): Promise<Project>; /** * @spec * Stores the given Blueprint in the project. */ storeBlueprint(blueprint: Blueprint): Promise<void>; /** * @spec * Gets the current Blueprint from the project. */ getBlueprint(): Promise<Blueprint | undefined>; /** * @spec * Gets the current Project */ getProject(): Promise<Project>; } export declare type ProjectInitializer = () => Promise<Project>; export declare function defaultProject(): Project; export declare const defaultBlueprintData: BlueprintData;