/// <reference types="svelte" />
import { Adapter } from "@tuentyfaiv/svelte-form";
import { ObjectSchema } from "yup";
import type { DataErrors } from "@tuentyfaiv/svelte-form";
import type { Writable } from "svelte/store";
import type { AnyObject, InferType } from "yup";
import type { YupAdapterConfig } from "./yup.types.js";
declare class YupAdapter<Schema extends ObjectSchema<AnyObject>, Data extends InferType<Schema> = InferType<Schema>> extends Adapter<Data> {
    #private;
    constructor(config: YupAdapterConfig<Schema>);
    initial: () => {
        fields: Data;
        errors: DataErrors<Data>;
    };
    validate: <T = Data>(data: T) => Promise<void>;
    field: (field: keyof Data, value: Data[keyof Data], errors: Writable<DataErrors<Data>>) => Promise<void>;
    errors: (error: unknown, errors: Writable<DataErrors<Data>>, handle?: ((error: unknown) => (void | Promise<void>)) | undefined) => Promise<void>;
}
export declare function adapter<Schema extends ObjectSchema<AnyObject>, Data extends InferType<Schema> = InferType<Schema>>(schema: Schema): YupAdapter<Schema, InferType<Schema>>;
export {};
