import { ReactNode, RefObject } from 'react';
import { CodeBlockTheme, CodeStyling } from '../../utils/shiki/code-styling';
import { CopyToClipboardButtonProps } from './copy-button';
type CodeBlockProps = {
    language?: string;
    filename?: string;
    icon?: string;
    lang?: string;
    className?: string;
    /**
     * Whether to show line numbers.
     */
    lines?: boolean;
    /**
     * Whether to wrap the code block.
     */
    wrap?: boolean;
    /**
     * Whether to expand the code block.
     */
    expandable?: boolean;
    /**
     * The lines to highlight. it's a stringified array of numbers.
     * Example: "[1,3,4,5]"
     */
    highlight?: string;
    /**
     * The lines to focus on. it's a stringified array of numbers.
     * Example: "[1,3,4,5]"
     */
    focus?: string;
    /**
     * Internal prop to set the number of lines in the code block.
     * Users should not set this prop.
     */
    numberOfLines?: number;
    /**
     * Prop to hide the ask ai button
     */
    hideAskAiButton?: boolean;
    /**
     * Prop to set the small text size
     */
    isSmallText?: boolean;
    /**
     * Pass in from CodeSnippetFeedbackProvider
     */
    feedbackModalOpen?: boolean;
    /**
     * Pass in from CodeSnippetFeedbackProvider
     */
    anchorRef?: RefObject<HTMLDivElement>;
    /**
     * Prop to set the code block theme (code block UI theme)
     */
    codeBlockTheme?: CodeBlockTheme;
    /**
     * Prop to set the code block theme object (syntax highlighting theme)
     */
    codeBlockThemeObject?: CodeStyling;
    /**
     * Pass in AskAiCodeBlockButton component
     */
    askAiButton?: ReactNode;
    /**
     * Pass in CodeSnippetFeedbackButton component
     */
    feedbackButton?: ReactNode;
    children?: ReactNode;
    copyButtonProps?: CopyToClipboardButtonProps;
};
declare const CodeBlock: (params: CodeBlockProps) => import("react/jsx-runtime").JSX.Element;
export { type CodeBlockProps, CodeBlock };
//# sourceMappingURL=code-block.d.ts.map