import type { ReactNode } from "react";
import React from "react";
import type { TypographyOptions, TypographyProps } from "../Typography";
type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
export interface HeadingProps {
    /**
     * Adds a unique identifier to the heading.
     * Useful when the heading needs to be referenced by another element.
     * Not intended for styling.
     */
    readonly id?: string;
    /**
     * @default 5
     */
    readonly level: HeadingLevel;
    readonly children: ReactNode;
    /**
     * Allows overriding of the element rendered. Defaults to the heading specified with level.
     */
    readonly element?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span";
    /**
     * The maximum amount of lines the text can occupy before being truncated with "...".
     * Uses predefined string values that correspond to a doubling scale for the amount of lines.
     */
    readonly maxLines?: "single" | "small" | "base" | "large" | "larger" | "unlimited";
    /**
     * **Use at your own risk:** Custom classNames for specific elements. This should only be used as a
     * **last resort**. Using this may result in unexpected side effects.
     * More information in the [Customizing components Guide](https://atlantis.getjobber.com/guides/customizing-components).
     */
    readonly UNSAFE_className?: TypographyProps["UNSAFE_className"];
    /**
     * **Use at your own risk:** Custom styles for specific elements. This should only be used as a
     * **last resort**. Using this may result in unexpected side effects.
     * More information in the [Customizing components Guide](https://atlantis.getjobber.com/guides/customizing-components).
     */
    readonly UNSAFE_style?: TypographyProps["UNSAFE_style"];
}
export type LevelMap = Record<HeadingLevel, TypographyOptions>;
export declare function Heading({ id, level, children, element, maxLines, UNSAFE_className, UNSAFE_style, }: HeadingProps): React.JSX.Element;
export {};
