/** * ink-terminal — High-performance React terminal renderer * * Extracted from Claude Code's rendering engine with 27 optimization techniques: * - 60fps throttled rendering with double-buffering * - Blit fast path (TypedArray memcpy for clean nodes) * - Packed Int32Array screen buffer with CharPool/StylePool * - Damage-bounded diff (only scan changed regions) * - DECSTBM hardware scrolling * - BSU/ESU atomic output (DEC 2026) * * Three-layer architecture: * - Core (no React): Screen buffer, Diff, Terminal I/O * - React: Reconciler, Components, Hooks * - Application (stays in your app): Theme, Markdown, VirtualMessageList */ export type { Diff, FlickerReason, Frame, FrameEvent, Patch } from './core/frame.js'; export { ClickEvent } from './events/click-event.js'; export { InputEvent, type Key } from './events/input-event.js'; export { KeyboardEvent } from './events/keyboard-event.js'; export { TerminalFocusEvent } from './events/terminal-focus-event.js'; export { stringWidth } from './internal/string-width.js'; export type { LayoutNode } from './layout/node.js'; export { configure, type InkTerminalConfig } from './providers/index.js'; export { Ansi } from './react/Ansi.js'; export { AlternateScreen } from './react/components/AlternateScreen.js'; export { default as Box } from './react/components/Box.js'; export { default as Button } from './react/components/Button.js'; export { default as FileLink, buildEditorUri, type Editor, type FileLinkProps } from './react/components/FileLink.js'; export { default as Link } from './react/components/Link.js'; export { default as Newline } from './react/components/Newline.js'; export { NoSelect } from './react/components/NoSelect.js'; export { RawAnsi } from './react/components/RawAnsi.js'; export type { ScrollBoxHandle } from './react/components/ScrollBox.js'; export { default as ScrollBox } from './react/components/ScrollBox.js'; export { default as Spacer } from './react/components/Spacer.js'; export { default as Text } from './react/components/Text.js'; export type { DOMElement } from './react/dom.js'; export { FocusManager } from './react/focus.js'; export { FpsCounter } from './react/components/FpsCounter.js'; export { useFps, type FpsStats } from './react/hooks/use-fps.js'; export { useAnimationFrame } from './react/hooks/use-animation-frame.js'; export { default as useApp } from './react/hooks/use-app.js'; export { default as useInput } from './react/hooks/use-input.js'; export { useAnimationTimer, useInterval } from './react/hooks/use-interval.js'; export { useSelection } from './react/hooks/use-selection.js'; export { default as useStdin } from './react/hooks/use-stdin.js'; export { useTabStatus } from './react/hooks/use-tab-status.js'; export { useTerminalFocus } from './react/hooks/use-terminal-focus.js'; export { useTerminalTitle } from './react/hooks/use-terminal-title.js'; export { useTerminalViewport } from './react/hooks/use-terminal-viewport.js'; export { default as measureElement } from './react/measure-element.js'; export type { Instance, RenderOptions, Root } from './react/root.js'; export { createRoot, default as render, renderSync } from './react/root.js'; export type { Styles, TextStyles } from './react/styles.js'; export { useVirtualScroll, type VirtualScrollResult } from './react/hooks/use-virtual-scroll.js'; export { VirtualList } from './react/components/VirtualList.js'; export { supportsTabStatus } from './termio/osc.js'; //# sourceMappingURL=index.d.ts.map