import * as React from 'react'; import type { PartProps } from '../../contracts/components.js'; export type SourceTransitionRootProps = PartProps<'div'> & { /** Called with the id of the source whose transition starts. */ onTransition?: ((id: string) => void) | undefined; }; declare function SourceTransitionRoot({ onTransition, children, render, ...rest }: SourceTransitionRootProps): React.JSX.Element; declare namespace SourceTransitionRoot { var displayName: string; } export type TransitionSourceProps = PartProps<'div'> & { id: string; }; declare function Source({ id, children, render, style, onClick, ...rest }: TransitionSourceProps): React.ReactElement>; declare namespace Source { var displayName: string; } export type TransitionDestinationProps = PartProps<'div'> & { id: string; }; declare function Destination({ id, children, render, style, ...rest }: TransitionDestinationProps): React.ReactElement>; declare namespace Destination { var displayName: string; } /** Imperative entry point — one call per Root transition. SURF-064/065: flushSync the `ag-src-` name onto the source, then startMorph: inside the update the name leaves the source, update() is flushed, and only then is the destination resolved and named — so a Destination that mounts as a result of the update (list -> detail) gets the name for the new snapshot and receives focus. Lookups are scoped to `scope` (a Source click passes its SourceTransition.Root, so equal ids under another Root never collide; the static defaults to document). Focus moves only when the source contained document.activeElement at begin time. Both names are cleared when the morph settles. */ export declare function SourceTransitionStart(id: string, update: () => void, scope?: ParentNode | null): Promise; export declare function startSourceTransition(root: HTMLElement, id: string, update: () => void): void; export declare const SourceTransition: { Root: typeof SourceTransitionRoot; Source: typeof Source; Destination: typeof Destination; start: typeof SourceTransitionStart; }; export {}; //# sourceMappingURL=SourceTransition.d.ts.map