import * as i0 from '@angular/core';
import { OnDestroy, InjectionToken, Provider } from '@angular/core';
import { Observable } from 'rxjs';

declare const SafeObserver: {
    new (callback: MutationCallback): MutationObserver;
    prototype: MutationObserver;
};

declare class WaMutationObserver extends SafeObserver implements OnDestroy {
    private readonly nativeElement;
    private readonly config;
    attributeFilter: string;
    attributeOldValue: "";
    attributes: "";
    characterData: "";
    characterDataOldValue: "";
    childList: "";
    subtree: "";
    readonly waMutationObserver: i0.OutputEmitterRef<MutationRecord[]>;
    constructor();
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WaMutationObserver, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<WaMutationObserver, "[waMutationObserver]", ["MutationObserver"], { "attributeFilter": { "alias": "attributeFilter"; "required": false; }; "attributeOldValue": { "alias": "attributeOldValue"; "required": false; }; "attributes": { "alias": "attributes"; "required": false; }; "characterData": { "alias": "characterData"; "required": false; }; "characterDataOldValue": { "alias": "characterDataOldValue"; "required": false; }; "childList": { "alias": "childList"; "required": false; }; "subtree": { "alias": "subtree"; "required": false; }; }, { "waMutationObserver": "waMutationObserver"; }, never, never, true, never>;
}

declare class WaMutationObserverService extends Observable<readonly MutationRecord[]> {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<WaMutationObserverService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<WaMutationObserverService>;
}

declare const WA_MUTATION_OBSERVER_INIT: InjectionToken<MutationObserverInit>;
declare function provideMutationObserverInit(useValue: MutationObserverInit): Provider;

export { WA_MUTATION_OBSERVER_INIT, WaMutationObserver, WaMutationObserverService, provideMutationObserverInit };
