import { type ReactNode } from 'react'; import type { PygmalionSourceRef } from '../editor/projectRuntime.js'; export interface SourceRefControlProps { /** Revision the mirror follows now. */ value: string | null; /** Commit currently rendered by the mirror. Used to expose a newer ref tip. */ currentCommit?: string | null; /** Revisions the mirror can be repointed at. */ refs: readonly PygmalionSourceRef[]; onChange(ref: string): void; /** Blocks selection while the mirror rebuilds. */ busy?: boolean; /** Revision used when none is pinned, offered as the first entry. */ defaultRef?: string | null; /** Ref that renders uncommitted work. Omitted from the list when absent. */ worktreeRef?: string | null; /** Accessible name for the control. */ label?: string; /** Menu label for reloading the selected revision after its tip moves. */ refreshLabel?: string; /** * Trigger content. A host renders its own status chip here, so the control * blends into an existing toolbar instead of adding a second field. * Defaults to the selected revision. */ children?: ReactNode; className?: string; } /** * Selects the revision the dev mirror follows. Switching rebuilds the mirror, * screen inventory, and preview on that revision, so the editor reloads. * * The menu is a native select layered over the trigger: the host owns how the * trigger looks, while keyboard access, mobile behavior, and menu placement stay * with the platform. Pygmalion owns this control because the mirror lifecycle * belongs to the tool, not to a consuming application. */ export declare function SourceRefControl({ value, currentCommit, refs, onChange, busy, defaultRef, worktreeRef, label, refreshLabel, children, className, }: SourceRefControlProps): import("react").JSX.Element;