export type NanoFormEles =
  | HTMLNanoInputElement
  | HTMLNanoCheckboxElement
  | HTMLNanoSelectElement
  | HTMLNanoDateInputElement
  | HTMLNanoFileUploadElement;

export type PlainFormEles =
  | HTMLInputElement
  | HTMLSelectElement
  | HTMLTextAreaElement;

export type NanoFormEvent = CustomEvent & { target: NanoFormEles };

export type PlainFormEvent = Event & { target: PlainFormEles };

export interface ValidatorValueStore {
  [key: string]: any;
}

export interface ValidationState {
  fields: Array<NanoFormEles | PlainFormEles>;
  valid: boolean;
  validityMessage: string;
  dirty: boolean;
  name: string | number;
  value: any;
}
