import { ComponentOrHtmlElement, ElementName } from '../../types';
import { InteractiveElementConfiguration, InteractiveElementInstance } from './InteractiveElement.types';
import { PlainElement } from '../plain-element';
import { Ref } from 'vue';
import { FormInstance } from '../Form.types';
export declare class InteractiveElement extends PlainElement {
isDirty: Ref;
isSuspended: Ref;
isTouched: Ref;
isValid: Ref;
isOptional: Ref;
isDisabled: Ref;
label?: string;
errorsTarget?: string;
lazy: boolean;
ref: InteractiveElementInstance['ref'];
validators: Ref<{
validate: import("../validator").ValidateFunction;
errorMessage?: import("@myparcel-vfb/utils").FunctionOr | undefined;
precedence?: number | undefined;
}[]>;
focus: InteractiveElementConfiguration['focus'];
readonly form: InteractiveElementInstance['form'];
hooks: InteractiveElementInstance['hooks'];
protected config: InteractiveElementConfiguration;
/**
* The initial value of the field.
*/
protected initialValue: RT;
protected sanitize: InteractiveElementConfiguration['sanitize'];
blur: () => Promise;
validate: () => Promise;
reset: () => void;
constructor(form: FormInstance, name: N, config: InteractiveElementConfiguration);
setOptional(value: boolean): void;
setDisabled(value: boolean): void;
private createValidators;
}
//# sourceMappingURL=InteractiveElement.d.ts.map