import type { SerialRow, SerialStatus } from '../adapter/MasterDocumentAdapter.types'; export interface SerialSelectPanelProps { /** * Seriales disponibles para seleccionar. * * - Modo cliente (default): se provee el conjunto completo y el panel filtra y * pagina en cliente (suficiente para demo y datasets chicos / stories). * - Modo servidor (cuando se provee `onQueryChange` u `onPageChange`): `rows` * es ya la PÁGINA actual devuelta por `adapter.fetchAvailableSerials`; el * panel no filtra ni rebana, solo renderiza y delega búsqueda/paginación. */ rows: SerialRow[]; /** IDs de seriales seleccionados (controlado). */ value: string[]; /** Cantidad requerida (M). */ required: number; /** Modo solo lectura (documento fuera de DRAFT). */ readOnly?: boolean; /** Tamaño de página. Default 8. */ pageSize?: number; onChange: (next: string[]) => void; className?: string; /** Texto de búsqueda controlado (modo servidor). */ query?: string; /** Notifica el cambio de búsqueda (activa el modo servidor). */ onQueryChange?: (query: string) => void; /** Página actual (1-based) controlada (modo servidor). */ page?: number; /** Notifica el cambio de página (activa el modo servidor). */ onPageChange?: (page: number) => void; /** Total de registros del lado servidor, para calcular la paginación. */ total?: number; /** Indicador de carga (modo servidor): se muestra mientras llega la página. */ loading?: boolean; /** * Estados que exigen confirmación Sí/No al MARCAR una fila. Ausente o vacío ⇒ * comportamiento idéntico al actual (nunca se confirma). DESmarcar nunca * confirma, y el tope de sobre-selección se evalúa antes que la confirmación. */ confirmOnStatuses?: SerialStatus[]; /** * Clave i18n del mensaje de la confirmación. Recibe `{serialCode}`. * Default: `serial_panel.confirm_selection`. */ confirmMessageKey?: string; } /** * Panel de SELECCIÓN de seriales (documentos de salida, `NatureStock = Subtract`). * * Tabla multi-select sobre seriales en estado `Available`, con búsqueda y * paginación. Bloquea la over-selección (no permite superar `required`) y muestra * un toast. Componente presentacional/controlado: la selección vive en el * contenedor; búsqueda y paginación son estado local de presentación. */ export declare function SerialSelectPanel({ rows, value, required, readOnly, pageSize, onChange, className, query: queryProp, onQueryChange, page: pageProp, onPageChange, total, loading, confirmOnStatuses, confirmMessageKey, }: SerialSelectPanelProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=SerialSelectPanel.d.ts.map