import { IRegion } from '@uxland/regions'; declare const PrimariaRegion_base: any; /** * PrimariaRegion Web Component * * A plug-and-play region component that allows dynamic region creation without * needing to extend PrimariaRegionHost or use the @region decorator manually. * * Renders in light DOM (no shadow-root) to allow region content to be properly * displayed in the parent's DOM tree. * * @example * ```html * * ``` * * This component internally handles: * - Creating a container with the appropriate ID * - Setting up the region definition * - Managing the region lifecycle */ export declare class PrimariaRegion extends PrimariaRegion_base { /** * The name of the region to create. * This will be used both as the region name in the region manager * and to generate the container ID. */ name: string; /** * Rendering mode for the region. * - "multi" (default): all registered views are shown simultaneously (MultipleActiveAdapter). * - "single": only one view is shown at a time (SelectableAdapter via primaria-content-switcher). * Each plugin activates its own view; the adapter deactivates the rest automatically. */ mode: "multi" | "single"; /** * Render in light DOM instead of shadow DOM. * This allows the region content to be visible in the parent's DOM tree. */ createRenderRoot(): this; /** * Override shadowRoot getter to return this (light DOM) instead of null. * The region mixin tries to find elements using shadowRoot.querySelector(), * so we need to make it work with light DOM. */ get shadowRoot(): ShadowRoot | null; /** * The region instance created by the region host mixin. * Plugins can inject content into this region using the region manager. */ region: IRegion | undefined; /** * Virtual constructor for this instance to hold its own region definition. * This prevents conflicts when multiple primaria-region instances exist. */ private _instanceConstructor; constructor(); /** * Called when the component is connected to the DOM. * Sets up the region definition before the parent connectedCallback runs. */ connectedCallback(): void; /** * Mixin hook fired after `createRegions` finishes. * * Hydrates the freshly-created region with every view that has already been * registered for this region name via `regionManager.registerViewWithRegion`. * `registerViewWithRegion` only forwards to regions that exist at the moment * of the call, so a plugin that registers once at `initialize` would lose * its view every time the region is destroyed and re-created (e.g. when a * drawer that hosts the region is closed and reopened). Pulling from the * registry here makes injection transparent: any plugin can register once * and any region with that name auto-populates. */ regionsCreated(_regions: unknown): void; /** * Called when the component is removed from the DOM. * * The base mixin's `disconnectedCallback` removes the region from the manager * but does NOT clear `this.region`, so on a later reconnect the mixin's * `createRegions` sees `isNil(this.region) === false` and skips re-creating * the region. That breaks the "drawer opens, closes, opens again" flow: * the second open would render the host but never receive the plugin's * view. Clear the reference (and drop the orphan container) so the next * connect rebuilds everything from scratch. */ disconnectedCallback(): void; /** * Called before the component updates. * Updates the region definition if the name changes. */ protected willUpdate(changedProperties: Map): void; /** * Renders nothing because we create the container div manually in connectedCallback. * This is necessary because the mixin needs the div to exist before it tries to create the region. */ render(): import('lit').TemplateResult<1>; } export {};