import { LitElement } from 'lit'; type HTMLElementConstructor = new (...args: any[]) => T; type NativeFormControlElement = HTMLInputElement; type FlagTypes = 'badInput' | 'customError' | 'patternMismatch' | 'rangeOverflow' | 'rangeUnderflow' | 'stepMismatch' | 'tooLong' | 'tooShort' | 'typeMismatch' | 'valueMissing' | 'badInput' | 'valid'; interface UUIFormControlValidatorConfig { flagKey: FlagTypes; getMessageMethod: () => string; checkMethod: () => boolean; weight: number; } export interface UUIFormControlMixinInterface extends LitElement { addValidator: (flagKey: FlagTypes, getMessageMethod: () => string, checkMethod: () => boolean) => void; removeValidator: (obj: UUIFormControlValidatorConfig) => void; focusFirstInvalidElement(): void; get value(): ValueType; set value(newValue: ValueType); formResetCallback(): void; checkValidity(): boolean; get validationMessage(): string; get validity(): ValidityState; setCustomValidity(error?: string): void; submit(): void; pristine: boolean; } export declare abstract class UUIFormControlMixinElement extends LitElement implements UUIFormControlMixinInterface { protected _internals: ElementInternals; protected _runValidators(): void; addValidator: (flagKey: FlagTypes, getMessageMethod: () => string, checkMethod: () => boolean) => void; removeValidator: (obj: UUIFormControlValidatorConfig) => void; protected addFormControlElement(element: NativeFormControlElement): void; protected abstract getFormElement(): HTMLElement | undefined | null; focusFirstInvalidElement(): void; get value(): ValueType; set value(newValue: ValueType); formResetCallback(): void; checkValidity(): boolean; get validationMessage(): string; get validity(): ValidityState; setCustomValidity(error: string): void; submit(): void; pristine: boolean; name: string; required: boolean; requiredMessage: string; error: boolean; errorMessage: string; } /** * The mixin allows a custom element to participate in HTML forms. * * @param {Object} superClass - superclass to be extended. * @mixin */ export declare const UUIFormControlMixin: = typeof LitElement, DefaultValueType = undefined>(superClass: T, defaultValue?: DefaultValueType) => HTMLElementConstructor> & T; export {};