import { Recipe, RecipeDescriptor } from "./recipe"; export type RecipeConstructor = new (options?: any) => Recipe; export declare class RecipeMarketplace { readonly root: RecipeMarketplace.Category; /** * Install a recipe into the marketplace under the specified category path. * If a RecipeConstructor is provided, it is instantiated to extract its descriptor. * If a RecipeDescriptor is provided, it is used directly (for client-side hydration). * Categories are specified top-down (shallowest to deepest). * Intermediate categories are created as needed. * * @param recipe The recipe class or descriptor to install * @param categoryPath Category path from shallowest to deepest (e.g., ["Java", "Search"]) */ install(recipe: RecipeConstructor | RecipeDescriptor, categoryPath: CategoryDescriptor[]): Promise; categories(): RecipeMarketplace.Category[]; findRecipe(name: string): [RecipeDescriptor, RecipeConstructor | undefined] | undefined; allRecipes(): RecipeDescriptor[]; } export declare namespace RecipeMarketplace { class Category { readonly descriptor: CategoryDescriptor; readonly categories: Category[]; readonly recipes: Map; constructor(descriptor: CategoryDescriptor); /** * Install a recipe into this category or a subcategory. * If a RecipeConstructor is provided, it is instantiated to extract its descriptor. * If a RecipeDescriptor is provided, it is used directly (for client-side hydration). * Categories are specified top-down (shallowest to deepest). * Intermediate categories are created as needed. * * @param recipe The recipe class or descriptor to install * @param categoryPath Category path from shallowest to deepest */ install(recipe: RecipeConstructor | RecipeDescriptor, categoryPath: CategoryDescriptor[]): Promise; private findOrCreateCategory; findRecipe(name: string): [RecipeDescriptor, RecipeConstructor | undefined] | undefined; allRecipes(): RecipeDescriptor[]; } } export declare const JavaScript: CategoryDescriptor[]; export interface CategoryDescriptor { displayName: string; description?: string; } //# sourceMappingURL=marketplace.d.ts.map