import type { HTMLAttributes, ReactNode, Ref } from 'react';
import { type VariantProps } from 'class-variance-authority';
import { type TestableProps } from '../../utils/testId';
import { type LineConfig } from './CodeSnippetContext';
import { type FoldRegion } from './lib/foldUtils';
declare const codeSnippetRootVariants: (props?: ({
size?: "sm" | "md" | "lg" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type CodeSnippetRootVariantProps = VariantProps;
type CodeSnippetRootNativeProps = Omit, 'children'>;
export type CodeSnippetRootProps = CodeSnippetRootNativeProps & CodeSnippetRootVariantProps & TestableProps & {
ref?: Ref;
/** The code string to display */
code: string;
/** Programming language for syntax highlighting */
language?: TLanguage;
/** Per-line configuration (color, prefix) keyed by line number */
lines?: Record;
/** Starting line number (default: 1) */
startingLineNumber?: number;
/** Enable line wrapping */
wrapLines?: boolean;
/**
* Max lines before collapsing.
* Root auto-renders the default show-more button unless a direct
* `CodeSnippetShowMoreButton` child is provided for button-level props.
*/
maxLines?: number;
/** Foldable regions that can be collapsed/expanded */
folds?: FoldRegion[];
/** Callback when code is copied */
onCopy?: (code: string) => void;
/** Child components */
children?: ReactNode;
};
/**
* Code block with syntax highlighting, actions, line numbers, folding, and maxLines collapse.
*/
export declare const CodeSnippetRoot: {
({ code, language, size, lines, startingLineNumber, wrapLines: initialWrapLines, maxLines, folds: foldsProp, onCopy, className, children, "data-testid": testId, ...props }: CodeSnippetRootProps): import("react/jsx-runtime").JSX.Element;
displayName: string;
};
export {};