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 {};