import { ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges, EventEmitter, AfterViewInit } from '@angular/core';
import { Types } from '@cornerstonejs/core';
import { ToolBarComponent, ToolEnum } from '../tool';
import { CornerstoneService, ImageIdService, ImageInfo, LayoutEnum } from '../core';
import { BaseViewportComponent } from '../viewport';
import * as i0 from "@angular/core";
export declare class ViewerComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
    private elementRef;
    private imageIdService;
    private csService;
    private cdr;
    Layout: typeof LayoutEnum;
    toolGroupId: string;
    viewportInputs: Partial<Types.PublicViewportInput>[];
    activeViewportId: string;
    private resizeObserver;
    private resizeSubject;
    private destroy$;
    private pendingImageRender$;
    private pendingSegmentRender$;
    private initializedViewports;
    private viewportsToInit;
    private viewportInitialized$;
    private viewportDestroyed$;
    private allViewportsInitialized$;
    private toolbarInitialized$;
    private allComponentsInitialized$;
    private previousViewportType?;
    layout?: LayoutEnum;
    imageInfo?: ImageInfo;
    segmentInfo?: ImageInfo;
    loadedImageInfo?: ImageInfo;
    loadedSegmentInfo?: ImageInfo;
    toolBarComponent: ToolBarComponent;
    viewportComponentList: QueryList<BaseViewportComponent>;
    toolList: ToolEnum[];
    viewportActivated: EventEmitter<string>;
    imageLoaded: EventEmitter<void>;
    get renderingEngine(): import("@cornerstonejs/core").RenderingEngine;
    get viewportIds(): string[];
    constructor(elementRef: ElementRef, imageIdService: ImageIdService, csService: CornerstoneService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private initResizeObserver;
    private initComponentsTracking;
    private initViewportTracking;
    private checkAllViewportsInitialized;
    onViewportInit(viewportId: string): void;
    onViewportDestroy(viewportId: string): void;
    onToolbarInit(): void;
    onToolbarDestroy(): void;
    generateViewports(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onViewportClick(viewportId: string | undefined): void;
    /**
     * Retrieve image data without rendering
     * Rendering is handled by each viewport component
     */
    retrieveImage(isSegment?: boolean): Promise<void>;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ViewerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ViewerComponent, "nc-viewer", ["ncViewer"], { "layout": { "alias": "layout"; "required": false; }; "imageInfo": { "alias": "imageInfo"; "required": false; }; "segmentInfo": { "alias": "segmentInfo"; "required": false; }; "toolList": { "alias": "toolList"; "required": false; }; }, { "viewportActivated": "viewportActivated"; "imageLoaded": "imageLoaded"; }, never, never, false, never>;
}
