import * as i0 from '@angular/core'; import { Signal, InjectionToken, PipeTransform } from '@angular/core'; import { Action } from '@ng-atomic/core'; import { SignalOrValue } from '@ng-atomic/common/pipes/signal'; interface Option { name: string; value: T; } interface BaseField { placeholder?: string; hint?: SignalOrValue; actions?: Action[] | Signal; } interface TextField extends BaseField { type: 'text'; autoComplete?: SignalOrValue; } interface PasswordField extends BaseField { type: 'password'; } interface NumberField extends BaseField { type: 'number'; } interface TextareaField extends BaseField { type: 'textarea'; rows?: number; } interface DateInputField extends BaseField { type: 'date'; } interface DateRangeInputField extends BaseField { type: 'date-range'; } interface SelectField extends BaseField { type: 'select'; options: Option[] | Signal[]>; multiple?: boolean; } interface TimeRangeField extends BaseField { type: 'time-range'; } interface MultiSelectField extends BaseField { type: 'multi-select'; options: Option[] | Signal[]>; } interface FileField extends BaseField { type: 'file'; progress?: Signal; } interface ActionField extends BaseField { type: 'action'; actions: Action[] | Signal; buttonType?: 'flat' | 'raised' | 'stroked' | 'icon'; disabled?: boolean; } interface AgreementField { type: 'agreement'; label?: string; labelTemp: null | any; } interface SliderField extends BaseField { type: 'slider'; slider: { min?: number; max?: number; step?: number; }; } interface HiddenField { type: 'hidden'; } interface PreviewField extends BaseField { type: 'preview'; } interface PreviewImageField extends BaseField { type: 'preview:image'; } type FormField = TextField | PasswordField | TextareaField | DateInputField | DateRangeInputField | SelectField | TimeRangeField | MultiSelectField | FileField | ActionField | HiddenField | NumberField | PreviewField | AgreementField | SliderField | PreviewImageField; interface FormFieldMap { [key: string]: FormField | FormFieldMap; } declare const FORM_FIELD_MAP: InjectionToken; declare function provideFormFieldMap(useFactory: () => FormFieldMap): { provide: InjectionToken; useFactory: () => FormFieldMap; }; type Enum = Record; declare function buildOptions(_enum: Enum | any[]): Option[]; declare function buildEnumOptions(_enum: Enum): Option[]; declare class SmartFieldPipe implements PipeTransform { protected map: FormFieldMap; transform(key: string, map?: FormFieldMap): FormField; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵpipe: i0.ɵɵPipeDeclaration; } declare function resolveFormField(fieldMap: FormFieldMap, name: string): FormFieldMap | FormField; export { FORM_FIELD_MAP, SmartFieldPipe, buildEnumOptions, buildOptions, provideFormFieldMap, resolveFormField }; export type { FormField, FormFieldMap, Option };