import { ISignal , Signal } from '@lumino/signaling' ; import { IDebugger } from '../../tokens' ; /**
 * The model to keep track of the current source being displayed.
 */ export class SourcesModel implements IDebugger . Model . ISources { param options constructor ( options ) { this . currentFrameChanged = options . currentFrameChanged ; } /**
     * Signal emitted when the current frame changes.
     */ readonly currentFrameChanged : ISignal < IDebugger . Model . ICallstack , IDebugger . IStackFrame > ; /**
     * Signal emitted when a source should be open in the main area.
     */ get currentSourceOpened ( ) : ISignal < SourcesModel , IDebugger . Source > { return this . _currentSourceOpened ; } /**
     * Signal emitted when the current source changes.
     */ get currentSourceChanged ( ) : ISignal < SourcesModel , IDebugger . Source > { return this . _currentSourceChanged ; } /**
     * Return the current source.
     */ get currentSource ( ) : IDebugger . Source { return this . _currentSource ; } param source set currentSource ( source ) { this . _currentSource = source ; this . _currentSourceChanged . emit ( source ) ; } /**
     * Open a source in the main area.
     */ open ( ) { this . _currentSourceOpened . emit ( this . _currentSource ) ; } private _currentSource : IDebugger . Source | null ; private _currentSourceOpened = new Signal < SourcesModel , IDebugger . Source > ( this ) ; private _currentSourceChanged = new Signal < SourcesModel , IDebugger . Source > ( this ) ; } /**
 * A namespace for SourcesModel `statics`.
 */ export namespace SourcesModel { /**
     * The options used to initialize a SourcesModel object.
     */ export interface IOptions { /**
         * Signal emitted when the current frame changes.
         */ currentFrameChanged : ISignal < IDebugger . Model . ICallstack , IDebugger . IStackFrame > ; } }