import { LitElement, PropertyValues } from 'lit';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
import { EmbedType } from '../types/embeds.types';
import { Ref } from 'lit/directives/ref.js';
declare global {
    interface HTMLElementTagNameMap {
        "wy-embed": WyEmbed;
        "wy-embed-select": WyEmbedSelect;
    }
}
/**
 * Embed card for displaying external content (photo, video, link, rich).
 *
 * **Used sub components:**
 *
 * - [`<wy-item>`](./ui/wy-item.ts)
 * - [`<wy-button>`](./ui/wy-button.ts)
 * - [`<wy-icon>`](./ui/wy-icon.ts)
 * - [`<wy-dropdown>`](./ui/wy-dropdown.ts)
 *
 * @slot before - Slot rendered before the embed content (e.g. action buttons)
 *
 * @csspart wy-embed - Root embed container
 * @csspart wy-embed-interactive - Modifier when embed is clickable
 * @csspart wy-disabled - Modifier when embed is disabled
 * @csspart wy-embed-area - Area containing media (video/photo)
 * @csspart wy-embed-content - Content wrapper for video/rich embeds
 * @csspart wy-embed-video - Modifier for video embeds
 * @csspart wy-embed-rich - Modifier for rich embeds
 * @csspart wy-embed-photo - Photo variant container
 * @csspart wy-embed-photo-with-description - Photo variant with text description
 * @csspart wy-embed-image - Image element for photo embeds
 * @csspart wy-embed-icon - Thumbnail/icon element
 * @csspart wy-embed-provider - Provider meta text
 *
 * @fires {WyActionEventType} wy-action - Emitted when an action button is triggered.
 */
export declare class WyEmbed extends LitElement {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * Embed data to render inside the card.
     */
    embed: EmbedType;
    /**
     * Whether the embed is disabled (non-interactive).
     */
    disabled: boolean;
    /**
     * Reference to the embed content container element used for sizing/aspect-ratio adjustments.
     *
     * @internal
     */
    protected embedContentRef: Ref<HTMLDivElement>;
    /**
     * Dispatch a wy-action event for this embed.
     *
     * @internal
     * @param {ActionType | string} [action=""] - Action to dispatch.
     * @returns {boolean} True if the event was not canceled.
     */
    private dispatchActionEvent;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
    protected updated(_changedProperties: PropertyValues): void;
}
/**
 * Embed selector for multiple embeds (renders `<wy-embed>` instances with per-embed actions).
 *
 * **Used sub components:**
 *
 * - [`<wy-embed>`](./wy-embed.ts)
 * - [`<wy-button>`](./ui/wy-button.ts)
 * - [`<wy-icon>`](./ui/wy-icon.ts)
 *
 * @csspart wy-embed-select - Wrapper for embed selections
 * @csspart wy-embed-actions - Slot for action buttons shown before each embed
 *
 * @fires {EmbedRemoveEventType} embed-remove - Emitted when an embed is removed.
 * @fires {EmbedSwapEventType} embed-swap - Emitted when embeds should be swapped/rotated.
 */
export declare class WyEmbedSelect extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    /**
     * Array of embeds to render in the selector.
     *
     * @type {EmbedType[]}
     */
    embeds: EmbedType[];
    /**
     * Dispatch a local embed-remove event for the embed with the given id.
    *
     * @internal
     * @param id - Embed id to remove.
     * @returns {boolean} True if the event was not canceled.
     */
    private dispatchRemove;
    /**
     * Dispatch a local embed-swap event to request rotating/swapping embeds.
    *
     * @internal
     * @returns {boolean} True if the event was not canceled.
     */
    private dispatchSwap;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
//# sourceMappingURL=wy-embed.d.ts.map