import React, { Context, FC, PropsWithChildren, ReactElement } from "react";
import { DocsContextProps as DocsContextProps$1, Renderer } from "storybook/internal/types";
import { ThemeVars } from "storybook/theming";
import { Channel } from "storybook/internal/channels";

//#region code/addons/docs/.dts-emit/code/addons/docs/src/blocks/components/TableOfContents.d.ts
interface TocbotOptions {
  tocSelector: string;
  contentSelector: string;
  headingSelector: string;
  ignoreSelector?: string;
  headingsOffset?: number;
  scrollSmoothOffset?: number;
  orderedList?: boolean;
  onClick?: (e: MouseEvent) => void;
  scrollEndCallback?: () => void;
  [key: string]: unknown;
}
interface TocParameters {
  /** CSS selector for the container to search for headings. */
  contentsSelector?: string;
  /**
   * When true, hide the TOC. We still show the empty container (as opposed to showing nothing at
   * all) because it affects the page layout and we want to preserve the layout across pages.
   */
  disable?: boolean;
  /** CSS selector to match headings to list in the TOC. */
  headingSelector?: string;
  /** Headings that match the ignoreSelector will be skipped. */
  ignoreSelector?: string;
  /** Custom title ReactElement or string to display above the TOC. */
  title?: ReactElement | string | null;
  /**
   * TocBot options, not guaranteed to be available in future versions.
   *
   * @see tocbot docs {@link https://tscanlin.github.io/tocbot/#usage}
   */
  unsafeTocbotOptions?: Omit<TocbotOptions, 'onClick' | 'scrollEndCallback'>;
}
type TableOfContentsProps = React.PropsWithChildren<TocParameters & {
  className?: string;
  channel: Channel;
}>;
declare const TableOfContents: ({
  title,
  disable,
  headingSelector,
  contentsSelector,
  ignoreSelector,
  unsafeTocbotOptions,
  channel,
  className
}: TableOfContentsProps) => React.JSX.Element;
//#endregion
//#region code/addons/docs/.dts-emit/code/addons/docs/src/blocks/blocks/DocsContext.d.ts
declare const DocsContext: Context<DocsContextProps$1<Renderer>>;
//#endregion
//#region code/addons/docs/.dts-emit/code/addons/docs/src/blocks/blocks/DocsContainer.d.ts
interface DocsContainerProps<TFramework extends Renderer = Renderer> {
  context: DocsContextProps$1<TFramework>;
  theme?: ThemeVars;
}
declare const DocsContainer: FC<PropsWithChildren<DocsContainerProps>>;
//#endregion
export { TableOfContents as a, DocsContextProps$1 as i, DocsContainerProps as n, TocParameters as o, DocsContext as r, DocsContainer as t };