import type { IMatrixContext } from '../engine/core/IMatrixContext';
/**
 * Strategy interface for DOM operations.
 *
 * MatrixRuntime delegates all DOM concerns to this strategy.
 * When no strategy is provided, the runtime operates in headless mode.
 *
 * Methods accept HTMLElement to support runtime-managed browser elements.
 * Implementations use duck-typing to detect capabilities (mount, _receiveContext, etc.).
 */
export interface IDomStrategy {
    /** Mount a DOM element into the DOM with the given context. */
    mountElement(element: HTMLElement, context: IMatrixContext): Promise<void>;
    /** Unmount a DOM element from the DOM. */
    unmountElement(element: HTMLElement): Promise<void>;
    /** Create a DOM element by tag name. */
    createElement(tag: string, attributes?: Record<string, string>): HTMLElement;
    /** Register a custom element class for a tag. */
    registerElement(tag: string, constructor: CustomElementConstructor): void;
    /** Check if a custom element is registered for the given tag. */
    isElementRegistered(tag: string): boolean;
}
//# sourceMappingURL=IDomStrategy.d.ts.map