import { COMPONENT_TYPES, SUBCOMPONENT_TYPES } from '../enums/build.js'; import { ValueOf } from './Utils.js'; export type ComponentStructure = { [key: string]: Array; }; export type ComponentStructureResponse = { topLevelComponentsWithChildren: ComponentStructure; }; export type ProjectComponentsMetadata = { topLevelComponentMetadata: TopLevelComponents[]; }; export interface ComponentMetadata { componentName: string; type: { name: T; }; deployOutput: unknown; } export interface TopLevelComponent extends ComponentMetadata> { featureComponents: FeatureComponents[]; } export interface PrivateAppComponentMetadata extends TopLevelComponent { deployOutput: { cardId: number; appId: number; }; } export type TopLevelComponents = PrivateAppComponentMetadata | TopLevelComponent; export interface FeatureComponent extends ComponentMetadata> { deployOutput: T; } export type AppFunctionComponentMetadata = FeatureComponent<{ appId: number; appFunctionName: string; endpoint?: { path: string; methods: string[]; }; }>; export type FeatureComponents = FeatureComponent | AppFunctionComponentMetadata;