import { OnDestroy } from '@angular/core';
import { MatDialog } from '@angular/material';
import { Store } from '@ngrx/store';
import { Observable } from 'rxjs/Observable';
import { BundleUploadService } from '../bundle-upload.service';
import { ControlStateSyncService } from '../frame/control-state-sync.service';
import { IDevice } from '../frame/devices';
import { FrameComponent } from '../frame/frame.component';
import { IFrameState } from '../redux/frame';
import { IProject, ProjectService } from '../redux/project';
import { UploadSchemaService } from '../upload-schema/upload-schema.service';
/**
 * The host component holds the arrangement of macroscopic editor components.
 */
export declare class FramePanelComponent implements OnDestroy {
    private readonly project;
    private readonly store;
    private readonly dialog;
    private readonly schema;
    private readonly bundle;
    private readonly controls;
    frame: Observable<IFrameState>;
    isMobile: Observable<boolean>;
    devices: ReadonlyArray<IDevice>;
    isVersionLinked: Observable<boolean>;
    controlsReady: Observable<boolean>;
    /**
     * Whether the controls are currently connect to a remote server.
     */
    areControlsConnected: Store<boolean>;
    /**
     * Whether the current device supports fullscreen.
     */
    canFullscreen: boolean;
    /**
     * Parent frame.
     */
    private readonly frameEl;
    constructor(project: ProjectService, store: Store<IProject>, dialog: MatDialog, schema: UploadSchemaService, bundle: BundleUploadService, controls: ControlStateSyncService, frame: FrameComponent);
    ngOnDestroy(): void;
    chooseDevice(index: number): void;
    setReady(isReady: boolean): void;
    rotateDevice(): void;
    setWidth(width: number): void;
    setHeight(height: number): void;
    unlink(): void;
    openLinkDialog(): void;
    connect(ev: MouseEvent): void;
    uploadSchema(): void;
    uploadBundle(): void;
    /**
     * Disconnects controls from Interactive.
     */
    exitRemote(): void;
    /**
     * Forces the control iframe to refresh.
     */
    refresh(): void;
    /**
     * Toggles fullscreen on the control frame.
     */
    fullscreen(): void;
    private launch();
}
