ScreenRecorder interface exported

Last updated: 2026-03-05T10:53:28.864Z

Metrics

LOC: 17 Complexity: 1 Params: 0

Signature

interface ScreenRecorder

Source Code

export interface ScreenRecorder {
  /** Current recording state */
  readonly state: RecordingState;
  /** Start capturing the given tab (background/extension page context required) */
  start(tabId: number, options?: Partial<ScreenRecordOptions>): Promise<void>;
  /**
   * Start recording from an already-obtained `chrome.tabCapture` stream ID.
   * Use this from DevTools panel pages which have access to `navigator.mediaDevices`
   * but cannot call `chrome.tabCapture.getMediaStreamId` on behalf of another tab.
   */
  startWithStreamId(
    streamId: string,
    options?: Partial<ScreenRecordOptions>,
  ): Promise<void>;
  /** Stop capturing and return the recorded Blob (WebM) */
  stop(): Promise<Blob>;
}

Dependencies (Outgoing)

graph LR ScreenRecorder["ScreenRecorder"] createLogger["createLogger"] RecordingState["RecordingState"] ScreenRecordOptions["ScreenRecordOptions"] ScreenRecorder -->|uses| createLogger ScreenRecorder -->|uses| RecordingState ScreenRecorder -->|uses| ScreenRecordOptions style ScreenRecorder fill:#dbeafe,stroke:#2563eb,stroke-width:2px click ScreenRecorder "40597caf22067688.html" click createLogger "70597a0a6b5e9ebb.html" click RecordingState "7a99c111d189ad7f.html" click ScreenRecordOptions "11e31217986134f7.html"
TargetType
createLogger uses
RecordingState uses
ScreenRecordOptions uses

Impact (Incoming)

graph LR ScreenRecorder["ScreenRecorder"] handle["handle"] handle -->|uses| ScreenRecorder style ScreenRecorder fill:#dbeafe,stroke:#2563eb,stroke-width:2px click ScreenRecorder "40597caf22067688.html" click handle "3b3925f07e1ac5c3.html"
SourceType
handle uses