import { SyncFieldDefinition } from './types'; import { ReactChild, Ref } from 'react'; import { IdentifiableEntity } from '../../api/types'; import { ValidationResult } from '../useValidation'; export interface SelectOption { id: IdentifiableEntity['id'] extends '' ? never : IdentifiableEntity['id']; label: ReactChild; entity?: IdentifiableEntity; } export interface UseSelectField { value: IdentifiableEntity['id']; confirmChange: (id: string | null) => void; isSyncing: boolean; disabled: boolean; validation: ValidationResult; } export interface SelectFieldInput extends SyncFieldDefinition { options?: SelectOption[]; } export default function useSelectField(def: SelectFieldInput, ref: Ref): UseSelectField;