import { MutableRefObject, ReactNode } from 'react'; import { ElementSchema, IDispatcher, IElementController, IElementsBuilder, IRenderContext } from '../../types'; import ActionManager from '../action-manager'; import ElementManager from '../element-manager'; import MaterialManager from '../material-manager'; import RenderContext from '../render-context'; import SetterManager from '../setter-manager'; export declare type ElementsBuilderProps = { data: ElementSchema[]; materialManager?: MaterialManager; actionManager?: ActionManager; elementManager?: ElementManager; setterManager?: SetterManager; dispatcher?: IDispatcher; canvasContainerRef: MutableRefObject; setterContainerRef?: MutableRefObject; setterContainerExtraRender?: (props: { renderContext: IRenderContext; [key: string]: any; }) => ReactNode; context: RenderContext; }; export default class ElementsBuilder implements IElementsBuilder { private props; private elementManager; private materialManager; private actionManager; private setterManager; private dispatcher; constructor(props: ElementsBuilderProps); getCanvasContainerRef: () => MutableRefObject; getMaterialManager(): MaterialManager; getActionManager(): ActionManager; getElementManager(): ElementManager; getSetterManager(): SetterManager; setDispatcher(dispacher: IDispatcher): void; getDispatcher(): IDispatcher; updateView(): void; setData(data: ElementSchema[]): void; getData: (clone?: boolean) => ElementSchema[]; getElements: () => IElementController[]; schemaToElement: (element: ElementSchema) => IElementController; removeElement(element: IElementController): void; removeElements(elements: IElementController[]): void; addElement(element: IElementController | ElementSchema): IElementController; addElements(elements: Array): IElementController[]; createElementView: (element: IElementController) => ReactNode; render: () => ReactNode; }