import * as React from 'react'; import './TS_EditableItemController.scss'; import { DB_Object, DBProto, ResolvableContent } from '@nu-art/ts-common'; import { Editable_SaveAction } from '../../utils/EditableItem.js'; import { ModuleFE_BaseApi } from '../../modules/db-api-gen/ModuleFE_BaseApi.js'; import { Props_ItemsEditor } from '../Page_ItemsEditor/index.js'; import { EditableRef } from '../TS_EditableContent/TS_EditableContent.js'; import { ComponentSync } from '../../core/ComponentSync.js'; export type TemplatingProps_EditableItemController, EditorProps extends object = object> = { module: ModuleFE_BaseApi; onError?: (item: Partial, err: Error) => any | Promise; onSave?: (err: Proto['uiType']) => any | Promise; autoSave?: ResolvableContent]>; saveAction?: Editable_SaveAction; editor: React.ComponentType & EditorProps>; createInitialInstance?: () => Readonly>; editorProps?: EditorProps; }; export type Props_EditableItemController, EditorProps extends object = object> = TemplatingProps_EditableItemController & { item?: Readonly> | string; }; /** * Item_EditorController class handles the editing of a specific db item * and encapsulate logic to load the item from the local cache and uses the EditableItem to * and TS_EditableContent for rendering and editing the db item. * * @template Proto - The database prototype def to be edited * @template Props - The Props this class component takes */ export declare class TS_EditableItemController, EditorProps extends object = object, Props extends Props_EditableItemController = Props_EditableItemController> extends ComponentSync> { static DefaultAutoSave: (item?: Partial) => boolean; constructor(p: Props); private __onItemUpdated; protected deriveStateFromProps(nextProps: Props & Props_ItemsEditor, state?: Partial>): (EditableRef); render(): import("react/jsx-runtime").JSX.Element; }