import { ISlottable } from '../../../Behaviors/Slottable';
import { OverlayElement } from '../../Overlays/Abstracts/OverlayElement';
import type { IPortalProjectionElementProps } from './IPortalProjectionElementProps';
import type { PortalElement } from './PortalElement';
declare const PortalProjectionElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & typeof OverlayElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * PortalProjection - The projected instance of portal content rendered at the destination.
 *
 * @description
 * The PortalProjection component is the actual rendering of portal content at its destination location.
 * It is automatically created and managed by the Portal component when content is teleported. This element
 * handles the lifecycle of projected content, maintains the connection to the source portal, and manages
 * layering and stacking context. Portal projections inherit styles from their source and can be styled
 * independently at the projection site.
 *
 * @name PortalProjection
 * @element mosaik-portal-projection
 * @category Primitives
 *
 * @slot - The projected content from the source portal
 *
 * @csspart backdrop - The backdrop part.
 *
 * @cssprop {String} --portal-projection-font-family - The projection font family CSS custom property.
 * @cssprop {String} --portal-projection-font-letter-spacing - The projection font letter spacing CSS custom property.
 * @cssprop {String} --portal-projection-font-line-height - The projection font line height CSS custom property.
 * @cssprop {String} --portal-projection-font-size - The projection font size CSS custom property.
 * @cssprop {String} --portal-projection-font-text-decoration - The projection font text decoration CSS custom property.
 * @cssprop {String} --portal-projection-font-text-transform - The projection font text transform CSS custom property.
 * @cssprop {String} --portal-projection-font-weight - The projection font weight CSS custom property.
 * @cssprop {String} --portal-projection-gap - The projection gap CSS custom property.
 * @cssprop {String} --portal-projection-padding-bottom - The projection padding bottom CSS custom property.
 * @cssprop {String} --portal-projection-padding-left - The projection padding left CSS custom property.
 * @cssprop {String} --portal-projection-padding-right - The projection padding right CSS custom property.
 * @cssprop {String} --portal-projection-padding-top - The projection padding top CSS custom property.
 * @cssprop {String} --portal-projection-shadow - The projection shadow CSS custom property.
 * @cssprop {String} --portal-projection-shadow-blur - The projection shadow blur CSS custom property.
 * @cssprop {String} --portal-projection-shadow-color - The projection shadow color CSS custom property.
 * @cssprop {String} --portal-projection-shadow-offset-x - The projection shadow offset x CSS custom property.
 * @cssprop {String} --portal-projection-shadow-offset-y - The projection shadow offset y CSS custom property.
 * @cssprop {String} --portal-projection-shadow-spread - The projection shadow spread CSS custom property.
 * @cssprop {String} --portal-projection-transition-duration - The projection transition duration CSS custom property.
 * @cssprop {String} --portal-projection-transition-mode - The projection transition mode CSS custom property.
 * @cssprop {String} --portal-projection-transition-property - The projection transition property CSS custom property.
 * @cssprop {String} --portal-projection-translate - The projection translate CSS custom property.
 *
 * @dependency mosaik-backdrop - The Backdrop element.
 *
 * @example
 * Portal projections are created automatically by Portal elements and don't need manual instantiation.
 * They appear in the DOM at the destination location:
 * ```html
 * <!-- Source -->
 * <mosaik-portal>
 *   <div>Content</div>
 * </mosaik-portal>
 *
 * <!-- Automatically creates at destination -->
 * <mosaik-portal-projection>
 *   <div>Content</div>
 * </mosaik-portal-projection>
 * ```
 *
 * @example
 * Inspecting portal projections programmatically:
 * ```html
 * <mosaik-portal id="myPortal">
 *   <div>Projected content</div>
 * </mosaik-portal>
 * <script>
 *   const portal = document.querySelector('#myPortal');
 *   portal.addEventListener('portalAttached', (e) => {
 *     const projection = e.detail.projection;
 *     console.log('Projection created:', projection);
 *   });
 * </script>
 * ```
 *
 * @public
 */
export declare class PortalProjectionElement extends PortalProjectionElement_base implements IPortalProjectionElementProps, ISlottable {
    private _portal;
    private readonly _inlineStyleController;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Returns the portal assigned to this projection.
     *
     * @public
     * @readonly
     */
    get portal(): PortalElement;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * Assigns the portal to this projection.
     *
     * @public
     * @param portal The portal element to assign.
     */
    assign(portal: PortalElement): void;
}
/**
 * @public
 */
export declare namespace PortalProjectionElement {
    type Props = IPortalProjectionElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-portal-projection': PortalProjectionElement;
    }
}
export {};
//# sourceMappingURL=PortalProjectionElement.d.ts.map