import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs.js";
import { ComponentProps, HTMLAttributes, ReactNode } from "react";
//#region src/components/codeblock.d.ts
interface CodeBlockProps extends Omit<ComponentProps<'figure'>, 'title'> {
  title?: ReactNode;
  /**
   * Icon of code block
   *
   * When passed as a string, it assumes the value is the HTML of icon
   */
  icon?: ReactNode;
  /**
   * Allow to copy code with copy button
   *
   * @defaultValue true
   */
  allowCopy?: boolean | 'true' | 'false';
  /**
   * Keep original background color generated by Shiki or Rehype Code
   *
   * @defaultValue false
   */
  keepBackground?: boolean;
  viewportProps?: HTMLAttributes<HTMLElement>;
  /**
   * show line numbers
   */
  'data-line-numbers'?: boolean;
  /**
   * @defaultValue 1
   */
  'data-line-numbers-start'?: number;
  Actions?: (props: {
    className?: string;
    children?: ReactNode;
  }) => ReactNode;
}
declare function Pre(props: ComponentProps<'pre'>): import("react").JSX.Element;
declare function CodeBlock({ ref, title, allowCopy, keepBackground, icon, viewportProps, children, Actions, ...props }: CodeBlockProps): import("react").JSX.Element;
declare function CodeBlockTabs({ ref, ...props }: ComponentProps<typeof Tabs>): import("react").JSX.Element;
declare function CodeBlockTabsList(props: ComponentProps<typeof TabsList>): import("react").JSX.Element;
declare function CodeBlockTabsTrigger({ children, ...props }: ComponentProps<typeof TabsTrigger>): import("react").JSX.Element;
declare function CodeBlockTab(props: ComponentProps<typeof TabsContent>): import("react").JSX.Element;
//#endregion
export { CodeBlock, CodeBlockProps, CodeBlockTab, CodeBlockTabs, CodeBlockTabsList, CodeBlockTabsTrigger, Pre };