import React from "react"; export interface OptionWindow { listRef: React.RefObject; /** `true` quand le fenêtrage est actif (au-delà du seuil). En dessous : rendu classique. */ virtualized: boolean; startIndex: number; endIndex: number; /** Cales à insérer avant / après la tranche visible pour préserver hauteur et position de scroll. */ padTop: number; padBottom: number; onScroll: ((e: React.UIEvent) => void) | undefined; /** Remet la liste tout en haut (à l'ouverture / au changement de filtre). */ resetScroll: () => void; } /** * Fenêtrage partagé par `SingleSelect` et `MultiSelect` : au-delà de {@link VIRTUALIZE_THRESHOLD} * options, seule la tranche visible (+ marge) est montée, encadrée de cales haut/bas. En dessous du * seuil, rendu classique — aucun changement de comportement, navigation clavier cmdk intacte. * * La liste doit être à hauteur de ligne uniforme (cas des selects) : la hauteur réelle d'une ligne * est mesurée pour affiner la fenêtre, avec un repli estimé selon la présence de vignettes. */ export declare function useOptionWindow(open: boolean, itemCount: number, hasThumbnails: boolean): OptionWindow; /** * Vignette d'une option de select (partagée par `SingleSelect` et `MultiSelect`). * URL → image ; `null`/`""` → placeholder gris ; `undefined` → rien (option sans vignette). */ export declare const renderOptionThumbnail: (imageUrl: string | null | undefined, className?: string) => React.ReactNode; //# sourceMappingURL=select.helper.d.ts.map