import { HTMLAttributes } from 'react'; export type CodeThemeType = 'light' | 'dark'; export interface CodeBlockProps extends Omit, 'children' | 'onCopy'> { /** * Highlight.js language registered by CodeBlock. Supported values: * `sql`, `bash`, `json`, `tsx`, `plaintext`, `diff`. Unknown names * fall back to unhighlighted text. */ language?: string; children: string; theme?: CodeThemeType; showLineNumbers?: boolean; showWrapButton?: boolean; wrapLines?: boolean; /** * Accessible name for the scrollable code region. The region is a keyboard * tab stop (so overflowing code can be scrolled), and a tab stop must be * announced. Defaults to the `language` plus "code block", or "Code block" * when no language is set. Override to localise it or to say which code this * is when a page has several blocks. */ ariaLabel?: string; onCopy?: (value: string) => void | Promise; onCopyError?: (error: string) => void | Promise; }