import { adapterFactory } from './region-adapter-registry'; import { IRegionManager } from './region-manager'; import { ViewComponent, ViewDefinition } from './view-definition'; export interface IRegionHost extends Element { uxlRegion: IRegion; } export interface IRegionBehavior { attach(): Promise; detach(): Promise; } export interface IRegionAdapter { activateView(view: HTMLElement & ViewComponent): Promise; deactivateView(view: HTMLElement & ViewComponent): Promise; removeView(view: HTMLElement & ViewComponent): any; viewAdded(view: ViewDefinition): any; behaviors: IRegionBehavior[]; } export interface RegionDefinition { name: string; targetId: string; scoped?: boolean; options?: any; adapterFactory?: adapterFactory; } export interface IRegion { name: string; regionManager: IRegionManager; host: HTMLElement & IRegionHost; adapter: IRegionAdapter; readonly currentActiveViews: ViewDefinition[]; readonly currentViews: ViewDefinition[]; addView(key: string, view: ViewDefinition): Promise; context?: any; removeView(view: string): void; removeViews(): void; activate(view: string | ViewDefinition): Promise; deactivate(view: string | ViewDefinition): Promise; getView(key: string): ViewDefinition; viewRemovedFromDom(view: ViewDefinition): any; getKey(view: ViewDefinition): string; isViewActive(view: string | ViewDefinition): boolean; toggleViewActive(view: string | ViewDefinition): Promise; containsView(view: string | ViewDefinition): boolean; } export declare class Region implements IRegion { name: string; regionManager: IRegionManager; host: HTMLDListElement & IRegionHost; adapter: IRegionAdapter; definition: RegionDefinition; private views; private activeViews; private components; constructor(name: string, regionManager: IRegionManager, host: HTMLDListElement & IRegionHost, adapter: IRegionAdapter, definition: RegionDefinition); addView(key: string, view: ViewDefinition): Promise; removeView(view: string): Promise; removeViews(): Promise; private _context; get context(): any; set context(ctx: any); activate(view: string | ViewDefinition): Promise; viewRemovedFromDom(view: ViewDefinition): void; remove(view: string | ViewDefinition): void; deactivate(view: string | ViewDefinition): Promise; getView(key: string): ViewDefinition; get currentViews(): ViewDefinition[]; get currentActiveViews(): ViewDefinition[]; getKey(view: ViewDefinition): string; containsView(view: string | ViewDefinition): boolean; isViewActive(view: string | ViewDefinition): boolean; toggleViewActive(view: string | ViewDefinition): Promise; }