import { InjectionToken } from '@angular/core'; import { AbstractControl, NgForm } from '@angular/forms'; export declare const JSS_FORM_TOKEN: InjectionToken; export declare type ConditionalCallback = (...controls: AbstractControl[]) => T; export declare class Conditional { protected fields: string[]; protected cb: ConditionalCallback; constructor(fields: string[], cb: ConditionalCallback); } export interface InternalConditional { fields: string[]; cb: ConditionalCallback; } export declare function conditional(fields: string[], cb: ConditionalCallback): Conditional; export interface JssForm { readonly field: any; readonly ngForm: NgForm; onAction(action: string): void; } export interface HintBase { type: string; message: string; } export interface ErrorHint { type: 'error'; message: string; error?: string; } export interface WarningHint { type: 'warning'; message: string; } export interface DefaultHint { type: 'default'; message: string; } export declare type Hint = HintBase | DefaultHint | ErrorHint | WarningHint; export interface FormHints { hints?: (Hint | Conditional)[]; } export declare function hasFormHints(arg: any): arg is FormHints;