import { _update, BinderNode } from './BinderNode.js'; import { type FieldStrategy } from './Field.js'; import { type AbstractModel, type DetachedModelConstructor, type Value } from './Models.js'; import type { ClassStaticProperties } from './types.js'; import { type InterpolateMessageCallback, type Validator, type ValueError } from './Validation.js'; export type BinderConfiguration = Readonly<{ onChange?(oldValue?: T): void; onSubmit?(value: T): Promise; }>; export type BinderRootConfiguration = BinderConfiguration & Readonly<{ context?: unknown; }>; export declare class BinderRoot extends BinderNode { #private; static interpolateMessageCallback?: InterpolateMessageCallback; readonly ['constructor']: ClassStaticProperties>; constructor(Model: DetachedModelConstructor, config?: BinderRootConfiguration>); get defaultValue(): Value; set defaultValue(newValue: Value); get binder(): BinderRoot; get value(): Value; set value(newValue: Value); get submitting(): boolean; get validating(): boolean; read(value: Value | null | undefined): void; reset(): void; clear(): void; submit(): Promise | undefined | void>; submitTo(endpointMethod: (value: Value) => Promise): Promise; requestValidation(model: NM, validator: Validator>): Promise>>>; getFieldStrategy(elm: HTMLElement, model?: AbstractModel): FieldStrategy; protected performValidation(): Promise | void; protected completeValidation(): void; protected [_update](oldValue: Value): void; }