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
 * <primaria-region name="diagnostics-region"></primaria-region>
 * ```
 *
 * 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<PropertyKey, unknown>): 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 {};
