import { type ReactNode } from 'react'; import type { PillButtonSize } from '../components/PillButton'; export declare function SurfaceSlot({ renderSurface, surfaceKey, label, size, covered, onReadyChange, onReadyTimeout, readyCeilingMs, }: { /** Announced while the cover is up; the design draws no copy on it. */ label: string; size: PillButtonSize; /** * Puts the cover back over a ready surface — a payment that has gone * through but not yet landed. The provider stays mounted underneath, so it * can still report what happens to it. */ covered?: boolean; /** * Whether the provider's button is the one on screen, for chrome outside * the slot that has to land with it. A slot on its way out reports ready: * what is gone holds nothing back. */ onReadyChange?: (ready: boolean) => void; /** Ends an unresolved provider attempt instead of exposing its empty slot. */ onReadyTimeout?: () => void; /** Override for provider probes that intentionally stay covered while they resolve. */ readyCeilingMs?: number; } & ({ renderSurface: (onReady: () => void) => ReactNode; /** Unique per quote or retry so readiness cannot carry into another attempt. */ surfaceKey: string; } | { renderSurface?: undefined; surfaceKey?: undefined; })): import("react").JSX.Element; /** Readiness and its timeout belong to this provider attempt, not the cover. */ export declare function ProviderSurface({ renderSurface, onReady, onReadyTimeout, readyCeilingMs, }: { renderSurface: (onReady: () => void) => ReactNode; onReady: () => void; onReadyTimeout?: () => void; readyCeilingMs?: number; }): ReactNode; //# sourceMappingURL=SurfaceSlot.d.ts.map