/**
 * @file Heading.tsx
 * @input Uses React, HTMLAttributes, ReactNode
 * @output Exports Heading component, HeadingProps, HeadingLevel types
 * @position Core implementation; lives in own Heading/ dir, re-exported by Text/
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/Text/Text.doc.mjs (props table, features, implementation notes)
 * - /packages/core/src/Heading/Heading.test.tsx (tests for new/changed behavior)
 * - /packages/core/src/Text/index.ts (exports if types change)
 * - /apps/storybook/stories/Text.stories.tsx (storybook stories)
 * - /packages/cli/assets/templates/blocks/components/Heading/ (showcase blocks)
 * - /packages/cli/assets/templates/blocks/components/Text/ (showcase blocks)
 */
import { type ReactNode } from 'react';
import type { TextColor, TextDisplay, TextJustify, WordBreak, TextWrap } from '../theme/types';
import type { LayerPlacement } from '../Layer';
import type { BaseProps } from '../BaseProps';
/**
 * Heading level (1-6). Determines both visual styling and semantic HTML element.
 */
export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
/**
 * Display type variants for headings. Applies display-scale sizing
 * (larger, lighter) while preserving the semantic heading element.
 */
export type HeadingType = 'display-1' | 'display-2' | 'display-3';
export interface HeadingProps extends Omit<BaseProps<HTMLHeadingElement>, 'children'> {
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLHeadingElement>;
    /**
     * Heading level (1-6). Determines the semantic HTML element (h1–h6).
     * Also determines visual styling unless `type` is set.
     */
    level: HeadingLevel;
    /**
     * Display type variant. When set, overrides the visual styling from `level`
     * with display-scale sizing (larger, lighter weight, tighter line-height).
     * The `level` still determines the HTML element for accessibility.
     *
     * Use for hero banners, marketing headlines, and data callouts that need
     * heading semantics.
     *
     * @example
     * ```
     * <Heading level={1} type="display-1">Hero Title</Heading>
     * <Heading level={2} type="display-2">$1.2M Revenue</Heading>
     * ```
     */
    type?: HeadingType;
    /**
     * Accessibility level override. When set, the `aria-level` will differ
     * from the visual `level`. Use this when the visual hierarchy doesn't
     * match the document outline (e.g., sidebar headings, reused components).
     *
     * @default Same as `level`
     *
     * @example
     * ```
     * <Heading level={2} accessibilityLevel={3}>Sidebar Section</Heading>
     * ```
     */
    accessibilityLevel?: HeadingLevel;
    /**
     * Text color.
     * @default 'primary'
     */
    color?: TextColor;
    /**
     * Display type. Headings default to block.
     * Note: Silently overridden to 'block' when maxLines > 0 or hasCapsize is true.
     * @default 'block'
     */
    display?: TextDisplay;
    /**
     * Maximum lines before truncation. 0 = no truncation.
     * When set, shows tooltip on hover if content is truncated.
     * @default 0
     */
    maxLines?: number;
    /**
     * Control tooltip behavior for truncated text.
     * - `true` (default when maxLines > 0): show tooltip at default position
     * - `false`: disable tooltip
     * - Position value: show tooltip at specific position
     * @default true
     */
    hasTruncateTooltip?: boolean | LayerPlacement;
    /**
     * Word break behavior for truncated text.
     * @default 'break-all' for maxLines=1, 'break-word' otherwise
     */
    wordBreak?: WordBreak;
    /**
     * Text wrapping behavior.
     */
    textWrap?: TextWrap;
    /**
     * Text alignment (justification). Uses logical values (start/end)
     * for i18n/RTL compatibility.
     * @default 'start'
     */
    justify?: TextJustify;
    /**
     * Enable optical alignment (text-box-trim).
     * Forces block display.
     * @default false
     */
    hasCapsize?: boolean;
    /**
     * Strikethrough decoration.
     * @default false
     */
    hasStrikethrough?: boolean;
    /**
     * Heading content
     */
    children: ReactNode;
}
/**
 * Heading - Semantic heading component
 *
 * Renders headings with semantic HTML (h1-h6) and themed styling.
 *
 * @example
 * ```
 * <Heading level={1}>Page Title</Heading>
 * <Heading level={2}>Section</Heading>
 * <Heading level={2} accessibilityLevel={3}>Sidebar Section</Heading>
 * <Heading level={1} type="display-1">Hero Title</Heading>
 * <Heading level={2} type="display-2">$1.2M Revenue</Heading>
 * <Heading level={2} maxLines={1}>Very Long Section Title...</Heading>
 * <Heading level={3} color="secondary">Muted Heading</Heading>
 * ```
 */
export declare function Heading({ level, type, accessibilityLevel, color, display, maxLines, hasTruncateTooltip, wordBreak, textWrap, justify, hasCapsize, hasStrikethrough, xstyle, className, style, children, ref, ...props }: HeadingProps): import("react").JSX.Element;
export declare namespace Heading {
    var displayName: string;
}
//# sourceMappingURL=Heading.d.ts.map