import { type PropertyDeclarations } from 'lit'; import { ElementSlug } from '../../definitions/enums.js'; import type { FormElementEventMap } from '../../definitions/events.js'; import type { QueryDeclarations } from '../../definitions/interfaces.js'; import { FormErrors, FormSubmitCallbackFn } from '../../definitions/types.js'; import { AracnaBaseElement as BaseElement } from '../core/base-element.js'; import type { AracnaFormControlElement as FormControlElement } from '../core/form-control-element.js'; import type { AracnaButtonElement as ButtonElement } from './button-element.js'; declare global { interface HTMLElementTagNameMap { 'aracna-form': FormElement; } } declare class FormElement extends BaseElement { /** * Properties */ /** */ async?: boolean; controls?: T[]; disabled?: boolean; spinning?: boolean; /** * Queries */ /** */ buttonElement?: ButtonElement; controlElements: FormControlElement[]; formElement?: HTMLFormElement; connectedCallback(): void; disconnectedCallback(): void; setFormElementAttributes: () => void; onButtonClick: (event: MouseEvent) => void; onSlotChange(): void; onSubmit: (event: SubmitEvent) => void; callback: (fn?: FormSubmitCallbackFn) => Promise; get data(): FormData; get errors(): FormErrors | undefined; get slug(): ElementSlug; static properties: PropertyDeclarations; static queries: QueryDeclarations; } export { FormElement as AracnaFormElement };