import { LiveEditor } from '../../editor'; import { LiveTemplate } from '../../template'; export declare abstract class BasePart { /** * Signal for the editor to re-render. */ render(): void; } export interface UiPartComponent { render: () => void; template: LiveTemplate; } export interface UiPartConfig { /** * Editor. */ editor: LiveEditor; } export interface UiPartConstructor { new (config: any): UiPartComponent; } declare type LazyUiPartInfo = { cls: UiPartConstructor; config: UiPartConfig; }; /** * Lazy UI parts * * To save load time and un-used UI components the creation of the * parts can be delayed until they are needed. * * A part is registered with the configuration needed to create the * part. The first time that the part is requested the singleton * is requested for the part. */ export declare class LazyUiParts { parts: Record; registry: Record; constructor(); /** * Lazily get a part component. * * @param part Part name * @returns Part component singleton */ get(part: string): UiPartComponent; /** * Determine if the part has already been instantiated. */ has(part: string): boolean; register(part: string, cls: UiPartConstructor, config: UiPartConfig): void; } export {};