import { FieldState } from "../../types";

export interface FormStateManager<T> {
  fieldState: {
    isDirty: (index: number, fieldName: keyof T) => boolean;
    isTouched: (index: number, fieldName: keyof T) => boolean;
    get: (index: number, fieldName: keyof T) => FieldState;
  };
  formState: {
    isDirty: boolean;
    isValid: boolean;
    touched: boolean;
    isSubmitting: boolean;
    submitCount: number;
    isValidating: boolean;
  };
  reset: () => void;
  trigger: (name?: string) => Promise<boolean>;
  watch: (name?: string) => any;
}
