import { type Provider, type Type } from '@angular/core'; import { type TuiContext } from '@taiga-ui/cdk/types'; import { PolymorpheusComponent, type PolymorpheusContent } from '@taiga-ui/polymorpheus'; import { Observable, type Observer } from 'rxjs'; import { type TuiPortalService } from './service'; import * as i0 from "@angular/core"; export type TuiPortalContext = T & TuiContext> & { readonly content: PolymorpheusContent>; readonly createdAt: number; readonly id: string; completeWith(value: O): void; }; export declare abstract class TuiPortal { protected readonly service: TuiPortalService; protected abstract readonly component: Type; protected abstract readonly options: T; private readonly injector; constructor(service: TuiPortalService); open(content: PolymorpheusContent>, options?: Partial): Observable; protected add(component: PolymorpheusComponent): () => void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; } export declare function tuiAsPortal(portal: typeof TuiPortal): Provider;