import { EventEmitter } from '../utils/event-emitter'; import type { Container } from '../container'; import type { ContentElement } from './content-element'; /** * Basic layout * * @event destroy Destroy layout */ export declare abstract class BaseLayout extends EventEmitter { id: string; element: HTMLElement; protected config: T; protected container?: Container | HTMLElement; protected content?: ContentElement; constructor(config: T); /** * Get the current layout element */ getElement(): HTMLElement; /** * Show the loader (spinner) */ abstract showLoading(): void; /** * Hide the loader (spinner) */ abstract hideLoading(): void; /** * Set content (or add iframe) */ abstract setContent(content: ContentElement): void; /** * Add this layout to an element */ abstract addToDOM(container: Container): void; /** * Hide the layout (possibly with animation) */ abstract hide(): void; /** * Show the layout */ abstract show(): void; /** * Remove the layout from the DOM */ abstract destroy(): void; }