import type { Frame } from '../frame';
export interface FragmentInfo {
    id: string;
    frame?: Frame;
    variables: Record<string, string>;
}
interface FragmentInfoContext {
    /** componentName -> the fragment that defines it ({ id, variables }) */
    current: Record<string, FragmentInfo>;
}
/**
 * Single source of truth for which components are defined by a fragment.
 *
 * Embedded hosts own this knowledge and pass it as a top-level App prop; in
 * standalone we derive it from the part's `getRobotPart` -> `getFragment`
 * queries. Mode is fixed for the session (the prop is either always defined or
 * always undefined), mirroring `providePartConfig`.
 *
 * Must be provided BEFORE `providePartConfig`, whose frame-edit routing
 * consumes `useFragmentInfo()` to choose part-frame vs fragment-mod writes.
 */
export declare const provideFragmentInfo: (partID: () => string, embeddedMap: () => Record<string, FragmentInfo> | undefined) => void;
export declare const useFragmentInfo: () => FragmentInfoContext;
export {};
