import { toBioTemplateComponentBindingsById, toBioTemplateComponentProps, toBioTemplateComponentPropsByComponent, toBioTemplateComponentPropsById, BioTemplateEnvelope, BioTemplateComponentPropsLookupOptions, TemplateCollectionEnvelope } from '../templates'; type BioTemplateWorkspaceTarget = BioTemplateEnvelope | TemplateCollectionEnvelope; type WorkspaceKind = 'template' | 'collection'; interface TemplateWorkspaceStatus { loading?: boolean; saving?: boolean; error?: string | null; hasExperiment?: boolean; currentExperimentId?: number; lastLoadedAt?: Date | null; lastSavedAt?: Date | null; } interface TemplateWorkspaceActions { load?: () => unknown; reset?: () => unknown; save?: () => unknown; } interface Props { /** Template envelope or template collection shown in BioTemplateRenderer. */ target: BioTemplateWorkspaceTarget; /** Human-readable workspace label. */ label: string; /** Grouped request and current-experiment state for generated plugin pages. */ status?: TemplateWorkspaceStatus; /** Grouped load/reset/save handlers for generated plugin pages. */ actions?: TemplateWorkspaceActions; /** Copy shown in the status banner. */ message?: string; /** Whether the load/save request is active. */ loading?: boolean; /** Current request error. */ error?: string | null; /** Whether a current experiment id is available. */ hasExperiment?: boolean; /** Current experiment id displayed in the footer. */ currentExperimentId?: number; /** Last successful load timestamp. */ lastLoadedAt?: Date | null; /** Last successful save timestamp. */ lastSavedAt?: Date | null; /** Template vs collection copy defaults. */ kind?: WorkspaceKind; /** Compact preview layout. */ dense?: boolean; /** Render preview components in read-only mode. */ readonly?: boolean; /** Show load/save timestamps. */ showStatus?: boolean; /** Show template id/version cards for collection targets. */ showTemplateSummary?: boolean; loadLabel?: string; resetLabel?: string; saveLabel?: string; } declare function getComponentProps(component: string, options?: BioTemplateComponentPropsLookupOptions): Record | undefined; interface BioTemplateExperimentWorkspaceBindings { renderer: { target: BioTemplateWorkspaceTarget; }; componentProps: ReturnType; componentBindingsById: ReturnType; componentPropsById: ReturnType; componentPropsByComponent: ReturnType; getComponentProps: typeof getComponentProps; } interface BioTemplateExperimentWorkspaceSlotProps { target: BioTemplateWorkspaceTarget; bindings: BioTemplateExperimentWorkspaceBindings; componentProps: ReturnType; componentBindingsById: ReturnType; componentPropsById: ReturnType; componentPropsByComponent: ReturnType; getComponentProps: typeof getComponentProps; } type __VLS_Slots = { default?: (props: BioTemplateExperimentWorkspaceSlotProps) => unknown; }; declare const __VLS_base: import('vue').DefineComponent any; load: () => any; save: () => any; }, string, import('vue').PublicProps, Readonly & Readonly<{ onReset?: (() => any) | undefined; onLoad?: (() => any) | undefined; onSave?: (() => any) | undefined; }>, { status: TemplateWorkspaceStatus; message: string; error: string | null; readonly: boolean; loading: boolean; actions: TemplateWorkspaceActions; kind: WorkspaceKind; currentExperimentId: number; dense: boolean; hasExperiment: boolean; lastLoadedAt: Date | null; lastSavedAt: Date | null; showStatus: boolean; showTemplateSummary: boolean; loadLabel: string; resetLabel: string; saveLabel: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; declare const __VLS_export: __VLS_WithSlots; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };