import { OnDestroy } from '@angular/core';
import { Store } from '@ngrx/store';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/take';
import '../util/takeUntilDestroyed';
import { ConsoleService } from '../console/console.service';
import { IProject } from './../redux/project';
import { ControlStateSyncService } from './control-state-sync.service';
/**
 * The LocalStateSyncService manages synchronizing state between what's in the
 * editor state and what the local controls know about. It uses RPC over
 * postMessage to handle this.
 */
export declare class LocalStateSyncService implements OnDestroy {
    private readonly controlsState;
    private readonly console;
    private readonly store;
    private rpc;
    private state;
    private sources;
    private closed;
    constructor(controlsState: ControlStateSyncService, console: ConsoleService, store: Store<IProject>);
    /**
     * Attaches listeners to the iframe.
     */
    bind(frame: HTMLIFrameElement): this;
    /**
     * Tears down resources associated with the service.
     */
    unbind(): void;
    ngOnDestroy(): void;
    /**
     * Sends down the initial/current controls state, fired when the controls
     * first call `controlsReady`.
     */
    private sendInitialState();
    private sendInteractive(...packets);
}
