/**
 * CodeBlock component props
 */
export interface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * The code content to display
     */
    children: string;
    /**
     * Programming language for syntax highlighting
     * @default "text"
     */
    language?: string;
    /**
     * Show line numbers
     * @default false
     */
    showLineNumbers?: boolean;
    /**
     * Lines to highlight (1-indexed)
     * @example [5, 6, 7] - highlights lines 5, 6, and 7
     */
    highlightLines?: number[];
    /**
     * Diff mode for showing code changes
     * - 'additions' - highlights all lines as additions (green)
     * - 'deletions' - highlights all lines as deletions (red)
     * - 'diff' - parses lines starting with +/- as additions/deletions
     * @default false
     */
    diffMode?: "additions" | "deletions" | "diff" | false;
    /**
     * Show copy-to-clipboard button
     * @default true
     */
    copyable?: boolean;
    /**
     * Optional filename to display in header
     */
    filename?: string;
    /**
     * Show language label in header
     * @default true
     */
    showLanguage?: boolean;
    /**
     * Syntax highlighting theme
     * @default "light"
     */
    syntaxTheme?: "light" | "dark";
    /**
     * Wrap long lines instead of horizontal scroll
     * @default false
     */
    wrapLines?: boolean;
    /**
     * Maximum height with vertical scroll
     */
    maxHeight?: string | number;
    /**
     * Additional className (shadcn-style override)
     */
    className?: string;
    /**
     * Theme overrides
     */
    theme?: CodeBlockThemeOverrides;
}
/**
 * Supported programming languages
 */
export type CodeBlockLanguage = "javascript" | "typescript" | "jsx" | "tsx" | "python" | "java" | "c" | "cpp" | "csharp" | "go" | "rust" | "ruby" | "php" | "sql" | "html" | "css" | "scss" | "json" | "yaml" | "markdown" | "bash" | "shell" | "powershell" | "swift" | "kotlin" | "scala" | "graphql" | "dockerfile" | "xml" | "text";
/**
 * Theme configuration
 */
export interface CodeBlockTheme {
    baseStyle: string;
    header: string;
    headerLeft: string;
    headerRight: string;
    filename: string;
    languageLabel: string;
    codeWrapper: string;
    lineNumber: string;
    highlightedLine: string;
    diffAddition: string;
    diffDeletion: string;
    copyButton: string;
    copySuccess: string;
}
/**
 * Theme overrides
 */
export interface CodeBlockThemeOverrides {
    baseStyle?: string;
    header?: string;
    headerLeft?: string;
    headerRight?: string;
    filename?: string;
    languageLabel?: string;
    codeWrapper?: string;
    lineNumber?: string;
    highlightedLine?: string;
    diffAddition?: string;
    diffDeletion?: string;
    copyButton?: string;
    copySuccess?: string;
}
