import type React from 'react'; import z from 'zod'; import type { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js'; import type { BaseLibraryDefinition, DefinitionSchemaCreatorWithSlots } from '#src/schema/index.js'; import { libraryEntityType } from '#src/schema/index.js'; import type { PackageCompiler } from './package-compiler-types.js'; export interface LibraryDefinitionSchemaEntry { name: string; definitionSchema: DefinitionSchemaCreatorWithSlots, { librarySlot: typeof libraryEntityType; }>; } export declare const nodeLibraryDefinitionSchemaEntry: { name: string; definitionSchema: DefinitionSchemaCreatorWithSlots; id: z.ZodDefault; name: z.ZodString; }, z.z.core.$strip>, { librarySlot: import("../../index.js").DefinitionEntityType; }>; }; export interface LibraryCompilerCreator { name: string; createCompiler: (definitionContainer: ProjectDefinitionContainer, packageConfig: T) => PackageCompiler; } /** * Props passed to library edit components */ export interface LibraryEditComponentProps { packageDefinition: T; } /** * Parameters for creating a new library definition */ export interface CreateLibraryDefinitionParams { id: string; name: string; } /** * Web configuration for a library type */ export interface LibraryWebConfig { name: string; /** Display name shown in the UI (e.g., "Node Library") */ displayName: string; /** Short description explaining what this library type is for */ description: string; /** Whether only one instance of this library type is allowed per project */ singleton?: boolean; /** React component for editing this library type */ EditComponent: React.ComponentType>; /** Creates a new library definition with the given id and name */ createDefinition: (params: CreateLibraryDefinitionParams) => T; } /** * Creates a typed library web config */ export declare function createLibraryWebConfig(config: LibraryWebConfig): LibraryWebConfig; /** * Package type spec for registering package schemas, compilers, and web configs. */ export declare const libraryTypeSpec: import("#src/plugins/index.js").PluginSpec<{ schemaCreators: import("@baseplate-dev/utils").NamedArrayToMapFieldContainer>; compilerCreators: import("@baseplate-dev/utils").NamedArrayToMapFieldContainer>; webConfigs: import("@baseplate-dev/utils").NamedArrayToMapFieldContainer>; }, import("@baseplate-dev/utils").FieldMapValues<{ schemaCreators: import("@baseplate-dev/utils").NamedArrayToMapFieldContainer>; compilerCreators: import("@baseplate-dev/utils").NamedArrayToMapFieldContainer>; webConfigs: import("@baseplate-dev/utils").NamedArrayToMapFieldContainer>; }>>; //# sourceMappingURL=library-type-spec.d.ts.map