import { OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { ScreenSpanning } from './screen-spanning';
import * as i0 from "@angular/core";
declare global {
    interface Window {
        getWindowSegments: () => DOMRect[];
    }
}
/**
 * Holds information about the device screen context.
 */
export interface ScreenContextData {
    /** The list of available window segments. */
    readonly windowSegments: DOMRect[];
    /** The current screen spanning mode. */
    readonly screenSpanning: ScreenSpanning;
    /** True is current device have multiple screens available. */
    readonly isMultiScreen: boolean;
}
/**
 * This service allows to query and receive updates about current device's
 * screen context.
 *
 * See {@link ScreenContextData}
 */
export declare class ScreenContext implements ScreenContextData, OnDestroy {
    private currentContext;
    private screenContext$;
    private destroyed$;
    constructor();
    /** @ignored */
    ngOnDestroy(): void;
    /**
     * The list of available window segments.
     */
    get windowSegments(): DOMRect[];
    /**
     * The current screen spanning mode.
     */
    get screenSpanning(): ScreenSpanning;
    /**
     * True is current device have multiple screens available.
     */
    get isMultiScreen(): boolean;
    /**
     * Gets an observable emitting when the screen context changes.
     */
    asObservable(): Observable<ScreenContextData>;
    /**
     * Gets the current screen context.
     */
    asObject(): ScreenContextData;
    private getScreenContext;
    private getScreenSpanning;
    private getWindowSegments;
    static ɵfac: i0.ɵɵFactoryDeclaration<ScreenContext, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ScreenContext>;
}
