import * as React from 'react'; interface FeedSurfaceProps extends React.HTMLAttributes { rootRef: React.ForwardedRef; itemSlot: string; } interface Snapshot { scroll: HTMLElement; visible: boolean; anchors: { node: HTMLElement; top: number; }[]; focused: HTMLElement | null; focusedRow: HTMLElement | null; rowIndex: number; disclosures: { node: HTMLElement; hidden: boolean; }[]; } declare const FeedCoordinator: React.Context; /** No DOM wrapper: descendant-owned rows participate in the feed commit. */ export declare class FeedRow extends React.Component { static contextType: React.Context; context: React.ContextType; componentDidMount(): void; getSnapshotBeforeUpdate(): null; componentDidUpdate(): void; componentWillUnmount(): void; render(): React.JSX.Element; } /** Internal feed boundary: snapshot before React removes or resizes keyed rows. */ export declare class FeedSurface extends React.Component { private root; private seen; private arrivals; private media; private pending; private scheduled; private mounted; captureCommit(): void; scheduleCommit(): void; private rows; private forwardedRef; private setRoot; private rootCallback; private reduce; componentDidMount(): void; getSnapshotBeforeUpdate(): Snapshot | null; componentDidUpdate(_props: FeedSurfaceProps, _state: unknown, snapshot: Snapshot | null): void; private commit; private fade; componentWillUnmount(): void; render(): React.JSX.Element; } export {};