///
///
import { MessageResponses } from "../util/observe";
import { Simulation } from "../core/runtime/Simulation";
import { FunctionCallOutlet } from "./constructs/FunctionCallOutlet";
import { FunctionOutlet } from "./constructs/FunctionOutlet";
import { ConstructOutlet } from "./constructs/ConstructOutlet";
import { RuntimeFunction } from "../core/compilation/functions";
import { Project } from "../core/Project";
import { IstreamBufferOutlet } from "./IstreamBufferOutlet";
import { TemporaryObjectsCustomization, StackFrameCustomization } from "./memory/StackFrameOutlet";
import { MemoryOutlet } from "./memory/MemoryOutlet";
export declare const FADE_DURATION = 300;
export declare const SLIDE_DURATION = 400;
export declare class SimulationOutlet {
readonly sim?: Simulation;
private simRunner?;
private runnerDelay;
readonly codeStackOutlet: CodeStackOutlet;
readonly memoryOutlet: MemoryOutlet;
readonly cinBufferOutlet: IstreamBufferOutlet;
private readonly element;
private readonly runningProgressElem;
private readonly buttonElems;
private readonly alertsElem;
private readonly consoleContentsElem;
private readonly cinEntryElem;
private breadcrumbs;
_act: MessageResponses;
constructor(element: JQuery);
setSimulation(sim: Simulation): void;
clearSimulation(): void;
private refreshSimulation;
private setEnabledButtons;
private restart;
private stepForward;
private leaveBreadcrumb;
private stepOver;
private stepOut;
private runToEnd;
private pause;
private stepBackward;
private hideAlerts;
private cout;
private onCinInput;
private onEventOccurred;
private reset;
private atEnded;
}
export declare class DefaultLobsterOutlet {
private projectEditor;
private simulationOutlet;
readonly project: Project;
readonly sim?: Simulation;
private readonly element;
private readonly tabsElem;
_act: MessageResponses;
constructor(element: JQuery, project: Project);
setSimulation(sim: Simulation): void;
clearSimulation(): void;
private requestFocus;
private beforeStepForward;
}
export declare const OutletCustomizations: {
temporaryObjects: TemporaryObjectsCustomization;
func: {
[index: number]: StackFrameCustomization;
};
};
export declare abstract class RunningCodeOutlet {
protected element: JQuery;
protected overlayElem: JQuery;
protected stackFramesElem: JQuery;
readonly sim?: Simulation;
_act: MessageResponses;
constructor(element: JQuery);
setSimulation(sim: Simulation): void;
clearSimulation(): void;
abstract pushFunction(rtFunc: RuntimeFunction): void;
abstract popFunction(): void;
valueTransferOverlay(from: JQuery, to: JQuery, html: string, afterCallback?: () => void, duration?: number): void;
abstract refreshSimulation(): void;
private reset;
private pushed;
private popped;
}
export declare class CodeStackOutlet extends RunningCodeOutlet {
private frameElems;
private functionOutlets;
_act: MessageResponses;
/**
* Maps from runtime ID of a RuntimeFunction to the outlet
* that represents the call to that function.
*/
private callOutlets;
constructor(element: JQuery);
pushFunction(rtFunc: RuntimeFunction): FunctionOutlet;
popFunction(): void;
refreshSimulation(): void;
protected childOutletAdded(data: {
parent: ConstructOutlet;
child: ConstructOutlet;
}): void;
protected valueTransferStart(data: {
num: number;
start: JQuery;
html: string;
}): void;
protected functionCalled(data: {
outlet: FunctionCallOutlet;
func: RuntimeFunction;
}): void;
protected returnPassed(data: {
func: RuntimeFunction;
start: JQuery;
html: string;
result: any;
}): void;
}