import { LitElement, PropertyValues } from 'lit';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-preview-media": WyPreviewMedia;
    }
}
/**
 * Media preview component for audio/video files.
 *
 * Renders a <video> or <audio> element with fallbacks and loading UI.
 *
 * **Used sub components:**
 *
 * - [`<wy-progress-circular>`](./ui/wy-progress-circular.ts)
 * - [`<wy-preview-icon>`](./wy-preview-icon.ts)
 *
 * @csspart wy-content-video - Video element container / element.
 * @csspart wy-content-audio - Audio element container / element.
 * @csspart wy-content-progress - Progress indicator shown while media loads.
 *
 * @fires {FilePreviewLoadedEventType} file-preview-loaded - The file preview is considered loaded.
 */
export declare class WyPreviewMedia extends LitElement {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * Preview format to render. Accepts `"video"` or `"audio"`.
     */
    format: string;
    /**
     * Source URL used by the media element.
     */
    src: string;
    /**
     * Toggles playback when the preview item is marked as current.
     */
    play: boolean;
    /**
     * Display name of the media file.
     */
    name: string;
    /**
     * MIME type associated with the media source.
     */
    mediaType?: string;
    /**
     * Currently registered media element reference.
     *
     * @internal
     */
    mediaElement?: HTMLMediaElement;
    /**
     * Dispatches the `file-preview-loaded` event after the media metadata becomes available.
     *
     * @internal
     * @returns {boolean} `true` if the event was not canceled.
     */
    protected dispatchLoaded(): boolean;
    /**
     * Handles the `loadedmetadata` event by signaling that the preview is ready.
     *
     * @internal
     * @param e - Original metadata load event.
     */
    protected handleLoaded: (e: Event) => void;
    /**
     * Registers load and error listeners on the provided media element.
     *
     * @internal
     * @param mediaElement - Media element to observe.
     */
    registerLoading(mediaElement: Element | undefined): void;
    /**
     * Cleans up listeners and state from the previously registered media element.
     *
     * @internal
     */
    unregisterLoading(): void;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
    protected updated(changedProperties: PropertyValues<this>): void;
    disconnectedCallback(): void;
}
//# sourceMappingURL=wy-preview-media.d.ts.map