import { NgZone } from '@angular/core';
import { Logger } from '@dbg-riskit/common';
import { BehaviorSubject, Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * Class instances emitted [to observers] for each mql notification
 */
export declare class MediaChange {
    readonly mediaQuery: string;
    constructor(mediaQuery?: string);
}
/**
 * MediaMonitor configures listeners to mediaQuery changes and publishes an Observable facade to
 * convert mediaQuery change callbacks to subscriber notifications. These notifications will be
 * performed within the ng Zone to trigger change detections and component updates.
 *
 * NOTE: both mediaQuery activations and de-activations are announced in notifications
 */
export declare class MatchMedia {
    protected readonly ngZone: NgZone;
    private readonly logger;
    protected readonly _registry: Map<string, MediaQueryList>;
    protected readonly _source: BehaviorSubject<MediaChange>;
    protected readonly _observable$: Observable<MediaChange>;
    constructor(ngZone: NgZone, logger: Logger);
    /**
     * For the specified mediaQuery?
     */
    isActive(mediaQuery: string): boolean;
    /**
     * External observers can watch for all (or a specific) mql changes.
     * Typically used by the MediaQueryAdaptor; optionally available to components
     * who wish to use the MediaMonitor as mediaMonitor$ observable service.
     *
     * NOTE: if a mediaQuery is not specified, then ALL mediaQuery activations will
     *       be announced.
     */
    observe(mediaQuery?: string): Observable<MediaChange>;
    /**
     * Based on the BreakPointRegistry provider, register internal listeners for each unique
     * mediaQuery. Each listener emits specific MediaChange data to observers
     */
    private registerQuery;
    /**
     * Call window.matchMedia() to build a MediaQueryList; which
     * supports 0..n listeners for activation/deactivation
     */
    protected _buildMQL(query: string): MediaQueryList;
    static ɵfac: i0.ɵɵFactoryDeclaration<MatchMedia, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MatchMedia>;
}
