import type { Form, FormField, FormSchema, ResolvedFormField, ResolvedFormSchema } from '@inkline/inkline/types';
/**
 * Create form field schema
 *
 * @param field { FormField<T> }
 * @return { ResolvedFormField<T> }
 */
export declare function createFormFieldSchema<T>(field: FormField<T>): ResolvedFormField<T>;
/**
 * Create form array schema
 *
 * @param items { (FormSchema<T> | FormField<T>)[] }
 * @return { (ResolvedFormSchema<T> | ResolvedFormField<T>)[] }
 */
export declare function createFormArraySchema<T>(items: (FormSchema<T extends Form ? T : never> | FormField<T>)[]): (ResolvedFormSchema<T extends Form ? T : never> | ResolvedFormField<T>)[];
/**
 * Recursively create form schema
 *
 * @param schema { FormSchema<T> }
 * @return { ResolvedFormSchema<T> }
 */
export declare function createFormSchema<T extends Form>(schema: FormSchema<T>): ResolvedFormSchema<T>;
/**
 * Alias for createFormSchema
 *
 * @param schema { FormSchema<T> }
 * @return { ResolvedFormSchema<T> }
 */
export declare function createSchema<T extends Form>(schema: FormSchema<T>): ResolvedFormSchema<T>;
