import { Injector, Signal } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { ContentDensityObserverSettings } from '../classes/content-density-observer.settings';
import { ContentDensityObserverTarget } from '../content-density.types';
import { ContentDensityMode } from '../types/content-density.mode';
import * as i0 from "@angular/core";
export declare class ContentDensityObserver extends BehaviorSubject<ContentDensityMode> {
    /** @hidden */
    readonly contentDensity$: Signal<ContentDensityMode | undefined>;
    /** @hidden */
    readonly config: ContentDensityObserverSettings;
    /** @hidden */
    readonly isCompact$: Observable<boolean>;
    /** @hidden */
    readonly isCozy$: Observable<boolean>;
    /** @hidden */
    readonly isCondensed$: Observable<boolean>;
    /** @hidden */
    readonly isCompactSignal: Signal<boolean>;
    /** @hidden */
    readonly isCozySignal: Signal<boolean>;
    /** @hidden */
    readonly isCondensedSignal: Signal<boolean>;
    /** @hidden */
    get isCompact(): boolean;
    /** @hidden */
    get isCozy(): boolean;
    /** @hidden */
    get isCondensed(): boolean;
    /** @hidden */
    private readonly _isCompact$;
    /** @hidden */
    private readonly _isCozy$;
    /** @hidden */
    private readonly _isCondensed$;
    /** @hidden */
    private _globalContentDensityService;
    /** @hidden */
    private _contentDensityDirective;
    /** @hidden */
    private _parentContentDensityObserver;
    /** @hidden */
    private _renderer;
    /** @hidden */
    private readonly _destroyRef;
    /** @hidden */
    private _elementRef;
    /** @hidden */
    private _elements;
    /** @hidden */
    private _alternativeTo;
    /** @hidden */
    constructor(_injector: Injector, _providedConfig?: ContentDensityObserverSettings);
    /** @hidden */
    consume(...consumers: ContentDensityObserverTarget[]): void;
    /**
     * Completes the stream and closes all internal subscriptions.
     */
    complete(): void;
    /** @hidden */
    removeConsumer(consumer: ContentDensityObserverTarget): void;
    /** @hidden */
    private _applyClass;
    /** Check if the given density is supported */
    private _isSupported;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentDensityObserver, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentDensityObserver>;
}
