/** * Copyright 2025 Vybestack LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { type HistoryService } from '../services/history/HistoryService.js'; import { type SessionRecordingService } from './SessionRecordingService.js'; /** * Bridges HistoryService events to SessionRecordingService. * * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-001, REQ-INT-002, REQ-INT-003, REQ-INT-004, REQ-INT-005, REQ-INT-006, REQ-INT-007 * @pseudocode recording-integration.md lines 30-104 */ export declare class RecordingIntegration { private readonly recording; private historySubscription; private compressionInProgress; private disposed; constructor(recording: SessionRecordingService); /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-001, REQ-INT-002 * @pseudocode recording-integration.md lines 39-71 */ subscribeToHistory(historyService: HistoryService): void; /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-001, REQ-INT-006 * @pseudocode recording-integration.md lines 73-78 */ unsubscribeFromHistory(): void; /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-003 * @pseudocode recording-integration.md lines 80-82 */ recordProviderSwitch(provider: string, model: string): void; /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-003 * @pseudocode recording-integration.md lines 84-86 */ recordDirectoriesChanged(dirs: string[]): void; /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-003 * @pseudocode recording-integration.md lines 88-90 */ recordSessionEvent(severity: 'info' | 'warning' | 'error', message: string): void; /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-004, REQ-INT-007 * @pseudocode recording-integration.md lines 92-94 */ flushAtTurnBoundary(): Promise; /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-006 * @pseudocode recording-integration.md lines 96-98 */ dispose(): void; /** * @plan PLAN-20260211-SESSIONRECORDING.P14 * @requirement REQ-INT-005 * @pseudocode recording-integration.md lines 102-104 */ onHistoryServiceReplaced(newHistoryService: HistoryService): void; }