import type { SerialRow, SerialStatus } from '../adapter/MasterDocumentAdapter.types'; export interface SerialCaptureModeProps { mode: 'capture'; /** Códigos de serial capturados. */ serials: string[]; required: number; readOnly?: boolean; /** Error externo (p.ej. `adapter.validateSerial`). */ externalError?: string | null; /** Hay un `adapter.validateSerial` en vuelo para el último código leído. */ validating?: boolean; onChange: (next: string[]) => void; className?: string; } export interface SerialSelectModeProps { mode: 'select'; /** Seriales disponibles (paginados por el adapter en el kit final). */ rows: SerialRow[]; /** IDs seleccionados. */ value: string[]; required: number; readOnly?: boolean; pageSize?: number; onChange: (next: string[]) => void; className?: string; /** Búsqueda controlada server-side. */ query?: string; onQueryChange?: (query: string) => void; /** Página actual (1-based) controlada server-side. */ page?: number; onPageChange?: (page: number) => void; /** Total de registros del lado servidor. */ total?: number; /** Indicador de carga de 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. */ confirmOnStatuses?: SerialStatus[]; /** Clave i18n del mensaje de esa confirmación. Recibe `{serialCode}`. */ confirmMessageKey?: string; } export type SerialPanelProps = SerialCaptureModeProps | SerialSelectModeProps; /** * Panel nativo de seriales del kit. Selecciona la UI según `mode`: * - `capture` → entrada por escáner/teclado ([[SerialCapturePanel]]). * - `select` → selección desde inventario ([[SerialSelectPanel]]). * * Componente presentacional. La activación condicional (`_itemIsSerialized`), * la lectura de la cantidad requerida y el cableado del adapter los resuelve el * contenedor (`LineFormModal` + hook `useSerialPanel`, paso 2). */ export declare function SerialPanel(props: SerialPanelProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=SerialPanel.d.ts.map