import type { ProjectDetailsPhase, ProjectInitPhases } from './project-init-phase-api.options'; import type { TechnologyPhaseRules } from './technology-phase-init-api.options'; export declare const enum ProjectTypeOperations { create = "CREATE_PROJECT" } export declare const enum ProjectPhases { Init = "INIT", Design = "DESIGN", Preparation = "PREPARATION_FOR_CONSTRUCTION", Construction = "CONSTRUCTION" } export interface CreateProjectRequestBody { readonly title: string; readonly storageNodeId: string; } export interface Project { readonly id: string; readonly title: string; readonly currentPhase: SimpleProjectPhase; } export interface SimpleProjectPhase { readonly id: string; readonly type: T; } export interface ProjectPhase { readonly id: string; readonly projectId: string; readonly type: ProjectPhases; readonly content: T; } export interface ProjectPhaseContent { readonly timeCreated: string; readonly isCompleted: boolean; } export interface ProjectInitPhase { readonly id: string; readonly projectId: string; readonly type: ProjectPhases.Init; readonly content: ProjectInitPhaseContent; } export interface ProjectDesignPhase { readonly id: string; readonly projectId: string; readonly type: ProjectPhases.Design; readonly content: ProjectDesignPhaseContent; } export interface ProjectInitPhaseContent extends ProjectPhaseContent { readonly components: ProjectInitComponents[]; } export interface ProjectDesignPhaseContent extends ProjectPhaseContent { readonly phaseInitializationId: string; } export type ProjectInitComponents = ProjectDetailsPhase | ProjectLinkTechnologyPhase | ProjectHomeProduserPhase | ProjectResourceManagmentPhase; export interface ProjectLinkTechnologyPhase { readonly id: string; readonly type: ProjectInitPhases.LinkTechnology; readonly constructionTechnologyId: string; readonly stageRules: TechnologyRule[]; } export interface TechnologyRule { readonly id: string; readonly key: string; readonly rulesType: TechnologyPhaseRules; readonly stageId: string; readonly taskId: string; } export interface ProjectHomeProduserPhase { readonly id: string; readonly type: ProjectInitPhases.HomeProducer; readonly homeProviderId: string; } export interface ProjectResourceManagmentPhase { readonly id: string; readonly type: ProjectInitPhases.ConstructionResourseManagment; }