import { z } from 'zod';
import { AbstractControlOptions, FormControl } from '@angular/forms';
import { FieldOptions, GeneratorOptions, UnwrapLazyType, ZodControl, ZodFormGroup } from '../types';
export type FormGroupOverrides<TSchema> = TSchema extends z.ZodObject<infer TObjectType> ? {
    [K in keyof TObjectType]?: FieldOptions<z.infer<TObjectType[K]>> | ZodControl<UnwrapLazyType<TObjectType[K]>> | FormControl<z.infer<TObjectType[K]>>;
} : never;
export declare function createFormGroup<TSchema extends z.SomeZodObject>(schema: TSchema, overrides?: FormGroupOverrides<TSchema>, options?: AbstractControlOptions, generatorOptions?: GeneratorOptions): ZodFormGroup<TSchema>;
