import React from "react";
import type { Atom } from "../atom/definition.ts";
import type { Field } from "../field/definition.ts";
import { FieldImpl } from "../field/implementation.ts";
import type { Form } from "./definition.ts";
export declare const formChange: Form.Change;
export { FormImpl as Form };
export declare class FormImpl<Value> {
    #private;
    static use<Value>(value: Value, deps: React.DependencyList, options?: Form.Options<Value>): FormImpl<Value>;
    static Component<Value, IsServer extends boolean | undefined = undefined>(props: Form.ComponentProps<Value, IsServer>): React.ReactElement<HTMLFormElement>;
    constructor(initial: Value, options?: Form.Options<Value>);
    deconstruct(): void;
    get id(): string;
    get field(): FieldImpl<Value>;
    get value(): Value;
    set(value: Value): FieldImpl<Value>;
    get initial(): Value;
    get dirty(): boolean;
    useDirty(): boolean;
    commit(): void;
    reset(): void;
    get $(): {} | undefined;
    at<Key extends keyof Value>(key: Key): any;
    useCompute<Computed>(callback: Atom.Compute.Callback<Value, Computed>, deps: React.DependencyList): Computed;
    into(intoMapper: any): any;
    useInto(intoMapper: any, deps: React.DependencyList): any;
    watch(callback: Atom.Watch.Bare.Callback<Value>): Atom.Unwatch;
    useWatch(callback: Atom.Watch.Bare.Callback<Value>): void;
    get valid(): boolean;
    validate(): Promise<boolean>;
    addError(error: Field.Error.Type): void;
    control<IsServer extends boolean | undefined = undefined>(props?: Form.ControlProps<Value, IsServer> | undefined): Form.ControlRegistration;
    get submitting(): boolean;
}
//# sourceMappingURL=implementation.d.ts.map