import { AfterContentInit, ElementRef, OnDestroy } from '@angular/core';
import { Store } from '@ngrx/store';
import 'codemirror/addon/fold/brace-fold';
import 'codemirror/addon/fold/foldcode';
import 'codemirror/addon/fold/foldgutter';
import 'codemirror/addon/lint/lint';
import 'codemirror/addon/selection/active-line';
import 'codemirror/mode/javascript/javascript';
import 'rxjs/add/operator/filter';
import '../util/takeUntilDestroyed';
import { IProject, ProjectService } from '../redux/project';
/**
 * The code component displays the code editor for participants/control state/
 */
export declare class CodeComponent implements AfterContentInit, OnDestroy {
    private readonly store;
    private readonly project;
    /**
     * Target CodeMirror text box.
     */
    target: ElementRef;
    /**
     * Current code editor state
     */
    private codeState;
    /**
     * Whether we're currently programmatically triggering a CodeMirror change.
     */
    private isTriggeringChange;
    /**
     * The CodeMirror instance.
     */
    private cm;
    /**
     * Whether the editor is currently enabled.
     */
    private isEnabled;
    /**
     * The code's element.
     */
    private el;
    constructor(store: Store<IProject>, project: ProjectService, el: ElementRef);
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    private setEnabled(enabled, state);
    private updateStoredState();
    private updateEditorToState(code);
    private updateEditorContents(lines);
    private dragNumber(startEv);
}
