import { type VariantProps } from 'class-variance-authority';
import * as React from 'react';
declare const codeBlockVariants: (props?: ({
    size?: "sm" | "md" | "lg" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface AICodeBlockHeaderProps {
    /** Programming language */
    language?: string;
    /** File name to display */
    fileName?: string;
    /** Whether to show copy button */
    showCopyButton?: boolean;
    /** Callback when copy is clicked */
    onCopy?: () => void;
    /** Whether content was copied */
    copied?: boolean;
    /** Additional class name */
    className?: string;
    /** Extra actions to render */
    actions?: React.ReactNode;
}
declare function AICodeBlockHeader({ language, fileName, showCopyButton, onCopy, copied, className, actions, }: AICodeBlockHeaderProps): import("react/jsx-runtime").JSX.Element;
declare namespace AICodeBlockHeader {
    var displayName: string;
}
export interface AICodeBlockContentProps {
    /** Code content */
    children: React.ReactNode;
    /** Whether to show line numbers */
    showLineNumbers?: boolean;
    /** Starting line number */
    startLineNumber?: number;
    /** Additional class name */
    className?: string;
}
declare function AICodeBlockContent({ children, showLineNumbers, startLineNumber, className, }: AICodeBlockContentProps): import("react/jsx-runtime").JSX.Element;
declare namespace AICodeBlockContent {
    var displayName: string;
}
export interface AICodeBlockProps extends VariantProps<typeof codeBlockVariants> {
    /** Code content to display */
    code: string;
    /** Programming language for syntax highlighting */
    language?: string;
    /** File name to display in header */
    fileName?: string;
    /** Whether to show the header */
    showHeader?: boolean;
    /** Whether to show copy button */
    showCopyButton?: boolean;
    /** Whether to show line numbers */
    showLineNumbers?: boolean;
    /** Starting line number */
    startLineNumber?: number;
    /** Pre-highlighted HTML content */
    highlightedCode?: string;
    /** Additional class name */
    className?: string;
    /** Extra actions for the header */
    headerActions?: React.ReactNode;
}
declare function AICodeBlock({ code, language, fileName, showHeader, showCopyButton, showLineNumbers, startLineNumber, highlightedCode, size, className, headerActions, }: AICodeBlockProps): import("react/jsx-runtime").JSX.Element;
declare namespace AICodeBlock {
    var displayName: string;
}
export { AICodeBlock, AICodeBlockContent, AICodeBlockHeader, codeBlockVariants, };
