import { type TableOfContentsHeadings, type TableOfContentsHeadingsOptions } from "./types.js";
/**
 * This will find all headings that have an `id` that are not part of a `<nav>`
 * element since that should normally be a table of contents component.
 *
 * @since 6.0.0
 */
export declare const DEFAULT_HEADING_SELECTOR = "main :where(:not(nav *)):where(h1[id],h2[id],h3[id],h4[id],h5[id],h6[id])";
/**
 * This only works for heading elements since it is pretty much:
 * `return parseInt(element.tagName.substring(1))`
 *
 * @since 6.0.0
 */
export declare const DEFAULT_GET_HEADING_DEPTH: (element: Element) => number;
/**
 * @since 6.0.0
 */
export declare const DEFAULT_GET_HEADING_TEXT: (element: Element) => string;
/**
 * The `useTableOfContentsHeadings` should normally be used with the
 * `useActiveHeadingId` hook to generate a table of contents for the current
 * page.
 *
 * @example Example Usage
 * ```tsx
 * import { useActiveHeadingId } from "@react-md/core/navigation/useActiveHeadingId";
 * import { useTableOfContentsHeadings } from "@react-md/core/navigation/useTableOfContentsHeadings";
 *
 * function Example() {
 *   const headings = useTableOfContentsHeadings();
 *   const activeHeadingId = useActiveHeadingId({ headings });
 *
 *   return <TableOfContents headings={headings} activeHeadingId={activeHeadingId} />;
 * }
 * ```
 *
 * @see {@link https://react-md.dev/hooks/use-table-of-contents-headings | useTableOfContentsHeadings Demos}
 * @since 6.0.0
 */
export declare function useTableOfContentsHeadings(options?: TableOfContentsHeadingsOptions): TableOfContentsHeadings;
