import type { ResolvedFormSchema, ResolvedFormField, Form, FormValue, FormSchema, FormField } from '@inkline/inkline/types';
/**
 * Apply validators to the form input schema and set the value for the valid and invalid fields
 *
 * @param schema { FormField<T> | ResolvedFormField<T> }
 * @param path { string }
 * @param rootSchema { FormSchema<R> | ResolvedFormSchema<R> }
 * @returns { ResolvedFormField<T> }
 */
export declare function validateFormField<T = FormValue, R extends Form = Form>(schema: FormField<T> | ResolvedFormField<T>, path?: string, rootSchema?: FormSchema<R> | ResolvedFormSchema<R>): Promise<ResolvedFormField<T>>;
/**
 * Validate each form field schema array item
 *
 * @param schema { FormField<T>[] | ResolvedFormField<T>[] }
 * @param path { string }
 * @param rootSchema { FormSchema<R> | ResolvedFormSchema<R> }
 * @returns { ResolvedFormField<T>[] }
 */
export declare function validateFormFieldArray<T = FormValue, R extends Form = Form>(schema: FormField<T>[] | ResolvedFormField<T>[], path?: string, rootSchema?: FormSchema<R> | ResolvedFormSchema<R>): Promise<any[]>;
/**
 * Validate each form group schema array item
 *
 * @param schema { FormSchema<T>[] | ResolvedFormSchema<T>[] }
 * @param path { string }
 * @param rootSchema { FormSchema<R> | ResolvedFormSchema<R> }
 * @returns { Promise<ResolvedFormSchema<T>[]> }
 */
export declare function validateFormArray<T extends Form = Form, R extends Form = Form>(schema: FormSchema<T>[] | ResolvedFormSchema<T>[], path?: string, rootSchema?: FormSchema<R> | ResolvedFormSchema<R>): Promise<any[]>;
/**
 * Recursively validate form fields and compute valid and invalid status using depth first traversal
 *
 * @param schema { FormSchema<T> | ResolvedFormSchema<T> }
 * @param name { string }
 * @param rootSchema { FormSchema<R> | ResolvedFormSchema<R> }
 * @returns { Promise<ResolvedFormSchema<T>> }
 */
export declare function validateForm<T extends Form = Form, R extends Form = Form>(schema: FormSchema<T> | ResolvedFormSchema<T>, name?: string, rootSchema?: FormSchema<R> | ResolvedFormSchema<R>): Promise<ResolvedFormSchema<T>>;
/**
 * Alias for validateFormGroup
 *
 * @param schema { FormSchema }
 * @returns { FormSchema }
 */
export declare function validateSchema<T extends Form = Form>(schema: FormSchema<T> | ResolvedFormSchema<T>): Promise<ResolvedFormSchema<T_1>>;
