@scenemesh/entity-engine-studio
Version:
Entity Engine Studio
65 lines • 3.3 kB
TypeScript
export { PreviewPanel } from './components/preview';
export { StudioService } from './services/studio-service';
export { changeDetector } from './services/change-detector';
export { ViewOptionsEditor } from './components/view-editor';
export { WidgetConfigEditor } from './components/view-editor';
export { EnhancedFieldEditor } from './components/view-editor';
export { EntityEngineAPI } from './services/entity-engine-api';
export { UniversalFieldsEditor } from './components/view-editor';
export { HierarchicalViewEditor } from './components/view-editor';
export { HierarchicalModelEditor } from './components/model-editor';
export { UnifiedConfigurationWorkspace } from './components/workspace';
export { StudioEngineService } from './services/studio-engine-service';
export { studioRenderers, EntityEngineStudioLauncher } from './renderers';
export { StudioEngineProvider, useStudioEngineOptional } from './providers/studio-engine-provider';
export type { EditMode } from './types/editor';
export type { StudioPageInfo } from './types/index';
export type { StudioState, StudioConfig } from './services/studio-service';
export type { ChangeSet, ConfigSnapshot } from './services/change-detector';
export type { ConfigData, ViewOptions } from './services/studio-engine-service';
export type { UnifiedConfigurationWorkspaceProps } from './components/workspace';
export type { StudioEngineProviderProps } from './providers/studio-engine-provider';
export type { IEntityView, IEntityModel, IEntityField, IEntityEngine, IEntityViewField, } from '@scenemesh/entity-engine';
export interface StudioExtension {
name: string;
version: string;
description?: string;
editors?: {
model?: React.ComponentType<any>;
view?: React.ComponentType<any>;
field?: React.ComponentType<any>;
};
toolbar?: {
items?: React.ComponentType<any>[];
};
panels?: {
left?: React.ComponentType<any>[];
right?: React.ComponentType<any>[];
};
hooks?: {
onModelSave?: (model: any) => Promise<void>;
onViewSave?: (view: any) => Promise<void>;
onConfigExport?: (config: any) => Promise<any>;
onConfigImport?: (config: any) => Promise<any>;
};
}
export declare class StudioExtensionRegistry {
private extensions;
register(extension: StudioExtension): void;
unregister(name: string): void;
get(name: string): StudioExtension | undefined;
getAll(): StudioExtension[];
getEditors(type: 'model' | 'view' | 'field'): (import("react").ComponentType<any> | undefined)[];
getToolbarItems(): import("react").ComponentType<any>[];
getPanels(position: 'left' | 'right'): import("react").ComponentType<any>[];
}
export declare const studioExtensionRegistry: StudioExtensionRegistry;
import { StudioEngineService } from './services/studio-engine-service';
export declare function createStudioInstance(engine: any): {
service: StudioEngineService;
extensionRegistry: StudioExtensionRegistry;
};
export type { PageConfig, NewPageForm, EditPageForm, MenuStructure, PageConfigItem, StudioPageConfig, StudioPageConfigItem, } from './types';
export declare const STUDIO_VERSION = "0.0.4";
export declare const STUDIO_NAME = "@scenemesh/entity-engine-studio";
//# sourceMappingURL=index.d.ts.map