import { Rule } from '@angular-devkit/schematics'; import { TsMorphAngularProjectTransformOptions } from '@rxap/workspace-ts-morph'; import { ClassDeclaration, CodeBlockWriter, Decorator, PropertyDeclaration, SourceFile } from 'ts-morph'; import { AbstractControl } from '../types/abstract-control'; export interface CoerceFormDefinitionControlOptions extends AbstractControl, TsMorphAngularProjectTransformOptions { tsMorphTransform?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration) => void; formName: string; coerceFormTypeControl?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, formTypeName: string, control: AbstractControl) => void; coerceFormControl?: (sourceFile: SourceFile, classDeclaration: ClassDeclaration, formTypeName: string, control: AbstractControl) => { propertyDeclaration: PropertyDeclaration; decoratorDeclaration: Decorator; } | void; } export declare function isAngularValidator(validator: string): boolean; export declare function CoerceFormDefinitionControl(options: Readonly): Rule; export declare function FormControlValidatorCodeBlockWriter(sourceFile: SourceFile, control: Pick): (w: CodeBlockWriter) => void; export declare function FormControlStateCodeBlockWriter(sourceFile: SourceFile, control: Required>): (w: CodeBlockWriter) => void;