import "./section_stack.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; interface StackProps extends StyleProps { children?: React.ReactNode; /** Hairline between blocks. Each stack defaults to what its altitude wants * (on for sections, off for subsections); the rule for overriding it is on * `SubsectionStack`. */ divided?: boolean; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } export type SectionStackProps = StackProps; /** * The content column of a flat record/form page — it OWNS the between-section * law: one fixed beat with a hairline `Divider` between top-level blocks (never * under a heading; the hairline separates a block from the PREVIOUS one). * Null/false children are skipped. No knobs — every flat page shares one rhythm. * * The one boundary that takes no beat is between two CLOSED disclosures: a * closed disclosure is a line, so a run of them is a list of rows. The stack * reads the disclosure's own state (`section_stack.css`); nothing is passed. */ export declare function SectionStack(props: SectionStackProps): React.JSX.Element; export type SubsectionStackProps = StackProps; /** * The stack of `Subsection` groups INSIDE a `Section` — a tighter beat, composed * as the section's body. * * SPACE-ONLY while the groups are SHORT: the titles carry the grouping, and * hairlines belong to the SECTION level (`SectionStack`), one rule per altitude. * Turn `divided` on once the groups are LONG, where the beat reads as one more * row gap. LENGTH is the discriminator, not whether the groups are titled. */ export declare function SubsectionStack(props: SubsectionStackProps): React.JSX.Element; export {};