import type { Snippet } from 'svelte'; export interface FieldArrayItem { id: string; [key: string]: unknown; } export interface FieldArrayMeta { /** Build a dotted path under this array, e.g. `path('email')` → `items.0.email` */ path: (field: string) => string; getError: (field: string) => string | undefined; disabled: boolean; } interface FieldArrayProps { items?: T[]; /** * Key in `form.data` when `bindData` is true. * Also used as the prefix for nested error paths. */ name?: string; /** Sync `items` with `form.data[name]` when inside `
`. */ bindData?: boolean; /** Minimum number of rows */ min?: number; /** Maximum number of rows */ max?: number; addLabel?: string; emptyLabel?: string; sortable?: boolean; disabled?: boolean; class?: string; /** Render each row; receives item, index, and path helpers */ item?: Snippet<[T, number, FieldArrayMeta]>; /** Called when items change */ onchange?: (items: T[]) => void; /** Factory for a new empty item */ createItem?: () => T; } declare const FieldArray: import("svelte").Component, {}, "items">; type FieldArray = ReturnType; export default FieldArray;