import { LiveChatEntriesController } from "./chat-message-renderer.js";
import { ChatTranscriptComponent, ScrollableComponentViewport, } from "./chat-transcript.js";
export class ChatSessionHostState {
    constructor(opts, callbacks) {
        this.inputBuffer = "";
        this.transcript = [];
        this.statusMessage = "";
        this.isBashMode = false;
        this.localBashRunning = false;
        this.sdkBusy = false;
        this.pendingSteeringMessages = [];
        this.pendingFollowUpMessages = [];
        this.compactionQueuedMessages = [];
        this.compacting = false;
        this.bodyViewport = new ScrollableComponentViewport();
        this.transcriptRenderSettingsKey = "";
        this.renderIdentityIds = new WeakMap();
        this.nextRenderIdentityId = 1;
        this.optimisticUserSignatureCounts = new Map();
        this.style = opts.style;
        this.commands = opts.commands ?? {};
        this.requestRender = opts.requestRender;
        this.getAgentSession = opts.getAgentSession;
        this.isStreamingOverride = opts.isStreaming;
        this.isPaused = opts.isPaused;
        this.isDisabled = opts.isDisabled;
        this.isBashRunningOverride = opts.isBashRunning;
        this.showWarning = opts.showWarning;
        this.showStatus = opts.showStatus;
        this.actions = opts.actions;
        this.getActionKeyDisplay = opts.getActionKeyDisplay;
        this.getMarkdownTheme = opts.getMarkdownTheme;
        this.getChatRenderSettings = opts.getChatRenderSettings;
        this.getCwd = opts.getCwd;
        this.footerData = opts.footerData;
        this.renderExtraEntry = opts.renderExtraEntry;
        this.tui = opts.tui;
        this.liveChat = new LiveChatEntriesController(this.transcript);
        this.transcriptComponent = new ChatTranscriptComponent(this.transcript, (entry) => callbacks.renderEntry(this, entry), (entry, index) => callbacks.transcriptCacheKey(this, entry, index));
    }
}
//# sourceMappingURL=chat-session-host-state.js.map