import { ElementRef, OnDestroy } from '@angular/core';
import { Maybe } from '@dereekb/util';
import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
import * as i0 from "@angular/core";
export type DbxEmbedComponentElement = 'embed' | 'img';
export declare class DbxEmbedComponent extends AbstractSubscriptionDirective implements OnDestroy {
    private readonly _browserObjectUrlRef;
    readonly sanitizer: DomSanitizer;
    readonly root: import("@angular/core").Signal<ElementRef<HTMLSpanElement> | undefined>;
    /**
     * The element to embed. Can be either embed or img. If not provided, will be determined by the input mimetype.
     *
     * If set to 'embed', the embed element will be used.
     * If set to 'img', the img element will be used.
     */
    readonly embedElement: import("@angular/core").ModelSignal<Maybe<DbxEmbedComponentElement>>;
    readonly sanitizeUrl: import("@angular/core").ModelSignal<Maybe<boolean>>;
    readonly srcUrl: import("@angular/core").ModelSignal<Maybe<string | SafeResourceUrl>>;
    readonly type: import("@angular/core").ModelSignal<Maybe<string>>;
    /**
     * The input blob or media source to use.
     *
     * If set, the srcUrl will be updated with the browser object URL.
     */
    readonly blob: import("@angular/core").ModelSignal<Maybe<Blob>>;
    readonly srcUrlFromBlob: import("@angular/core").WritableSignal<Maybe<string>>;
    readonly typeFromBlob: import("@angular/core").WritableSignal<Maybe<string>>;
    readonly blobEffect: import("@angular/core").EffectRef;
    readonly srcUrlSignal: import("@angular/core").Signal<Maybe<string | SafeResourceUrl>>;
    readonly typeSignal: import("@angular/core").Signal<Maybe<string>>;
    readonly root$: import("rxjs").Observable<ElementRef<HTMLSpanElement> | undefined>;
    readonly srcUrl$: import("rxjs").Observable<Maybe<string | SafeResourceUrl>>;
    readonly type$: import("rxjs").Observable<Maybe<string>>;
    readonly embedElementName$: import("rxjs").Observable<Maybe<DbxEmbedComponentElement>>;
    constructor();
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxEmbedComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxEmbedComponent, "dbx-embed", never, { "embedElement": { "alias": "embedElement"; "required": false; "isSignal": true; }; "sanitizeUrl": { "alias": "sanitizeUrl"; "required": false; "isSignal": true; }; "srcUrl": { "alias": "srcUrl"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "blob": { "alias": "blob"; "required": false; "isSignal": true; }; }, { "embedElement": "embedElementChange"; "sanitizeUrl": "sanitizeUrlChange"; "srcUrl": "srcUrlChange"; "type": "typeChange"; "blob": "blobChange"; }, never, never, true, never>;
}
