import type { SvelteComponentTyped } from "svelte/internal";

import type { FieldValues } from "../paths";

export interface FormProps {}

export interface FormEvents<F extends FieldValues> {
  success: CustomEvent<F>;
  failed: CustomEvent<Map<string, string[]>>;
}

export interface FormSlots {
  default: Record<string, any>;
}

export declare class Form<
  F extends FieldValues = FieldValues
> extends SvelteComponentTyped<FormProps, FormEvents<F>, FormSlots> {}

export default Form;
