import { ReactNode } from 'react'; export type GhanttScrollVirtualSlotRange = { start: number; end: number; }; export interface GhanttScrollVirtualContextValue { /** `true` cuando el host calcula la ventana (hora/día/semana con muchos slots). */ managed: boolean; slotRange: GhanttScrollVirtualSlotRange | null; } /** Referencia estable cuando no hay virtualización por scroll. */ export declare const GHANTT_SCROLL_VIRTUAL_CTX_IDLE: GhanttScrollVirtualContextValue; /** * Store externo (`useSyncExternalStore`): actualizar la ventana no re-renderiza el organismo Ghantt * ni la tabla completa, solo a los suscriptores (p. ej. cabecera con `GhanttSlotStrip`). */ export type GhanttScrollVirtualStore = { subscribe: (onStoreChange: () => void) => () => void; getSnapshot: () => GhanttScrollVirtualContextValue; setIdle: () => void; /** `managed === true`; `range === null` hasta la primera medición del viewport. */ setManagedRange: (range: GhanttScrollVirtualSlotRange | null) => void; }; export declare function createGhanttScrollVirtualStore(): GhanttScrollVirtualStore; export declare function GhanttScrollVirtualRoot({ store, children, }: { store: GhanttScrollVirtualStore; children: ReactNode; }): import("react/jsx-runtime").JSX.Element; /** * Ventana virtual de índices de slots (cabecera). Implementado con `useSyncExternalStore` para no * re-renderizar celdas de tabla al hacer scroll horizontal. */ export declare function useGhanttScrollVirtual(): GhanttScrollVirtualContextValue; //# sourceMappingURL=GhanttScrollVirtualContext.d.ts.map