/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { Portal } from '@angular/cdk/portal'; import { Direction, Directionality } from '@angular/cdk/bidi'; import { Observable, Subject } from 'rxjs'; /** * Basic interface for an overlay. Used to avoid circular type references between * `OverlayRef`, `PositionStrategy` and `ScrollStrategy`, and `OverlayConfig`. * @docs-private */ export interface OverlayReference { attach: (portal: Portal) => any; detach: () => any; dispose: () => void; overlayElement: HTMLElement; hostElement: HTMLElement; backdropElement: HTMLElement | null; getConfig: () => any; hasAttached: () => boolean; updateSize: (config: any) => void; updatePosition: () => void; getDirection: () => Direction; setDirection: (dir: Direction | Directionality) => void; backdropClick: () => Observable; attachments: () => Observable; detachments: () => Observable; keydownEvents: () => Observable; outsidePointerEvents: () => Observable; addPanelClass: (classes: string | string[]) => void; removePanelClass: (classes: string | string[]) => void; readonly _outsidePointerEvents: Subject; readonly _keydownEvents: Subject; }