/** * Collapse — a body that opens and closes by animating its own height. * * Height cannot be animated from `auto`, so the content is measured first and * the measurement is what gets animated to. While that is happening the content * is taken out of the flow, because a child of a view whose height is * mid-animation reports that animated height back and the panel then settles on * whatever it happened to measure. * * The moment the animation finishes, both go away and the content lays out * normally again. That is what lets a Collapse hold another Collapse — or hold * content that is still streaming in — without either of them being clipped to * a number that was true a frame ago. * * ```tsx * * Anything, of any height. * * ``` * * The alternative — unmounting the body and letting a layout transition on the * parent carry the change — is what `Accordion` does, and it is right when the * closed state should cost nothing. This is for a body that opens and closes * repeatedly and often while its content is still arriving, where remounting * would throw away scroll position and restart every animation inside it. */ import { type ReactNode } from 'react'; import { type ViewProps } from 'react-native'; /** Long enough to read as the panel opening, short enough not to be waited on. */ export declare const COLLAPSE_DURATION = 200; export interface CollapseProps extends Omit { open: boolean; /** Classes on the measured content, not on the clipping frame. */ className?: string; duration?: number; children?: ReactNode; } export declare function Collapse({ open, className, duration, children, ...props }: CollapseProps): import("react").JSX.Element; export declare namespace Collapse { var displayName: string; } //# sourceMappingURL=collapse.d.ts.map