import type { DynamicFormConfig, DynamicFormField, FieldCondition, FieldType, FieldValidation, RemoteSearchConfig, SelectOption, StepGuard, StepperFormConfig } from '../../models/form-field.model'; import type { SavedFormSchema } from '../../models/saved-form.model'; import * as i0 from "@angular/core"; interface FieldTypeDef { type: FieldType; label: string; icon: string; group: 'Saisie' | 'Choix' | 'Mise en page'; } interface BuilderStep { label: string; icon?: string; fields: DynamicFormField[]; atLeastOneOf?: string[]; atLeastOneOfMessage?: string; beforeNext?: StepGuard; } export declare const ICON_OPTIONS: { value: string; label: string; }[]; export declare class FormBuilderComponent { backRoute: string; private formService; private snack; private route; constructor(); isStepperMode: import("@angular/core").WritableSignal; private flatFields; steps: import("@angular/core").WritableSignal; selectedStepIdx: import("@angular/core").WritableSignal; renamingStepIdx: import("@angular/core").WritableSignal; renamingLabel: import("@angular/core").WritableSignal; selectedIdx: import("@angular/core").WritableSignal; activeTab: import("@angular/core").WritableSignal<"schema" | "preview">; formTitle: import("@angular/core").WritableSignal; submitLabel: import("@angular/core").WritableSignal; resetLabel: import("@angular/core").WritableSignal; showReset: import("@angular/core").WritableSignal; stepperShowSummary: import("@angular/core").WritableSignal; formAppearance: import("@angular/core").WritableSignal<"outline" | "fill" | "simple">; formFloatLabel: import("@angular/core").WritableSignal<"auto" | "always">; formAtLeastOneOfKeys: import("@angular/core").WritableSignal; formAtLeastOneOfMsg: import("@angular/core").WritableSignal; formCode: import("@angular/core").WritableSignal; currentId: import("@angular/core").WritableSignal; showExport: import("@angular/core").WritableSignal; exportContent: import("@angular/core").WritableSignal; savedSchemas: import("@angular/core").Signal; readonly groups: readonly ["Saisie", "Choix", "Mise en page"]; readonly fieldTypes: FieldTypeDef[]; readonly colOptions: readonly [1, 2, 3, 4, 6, 8, 9, 12]; readonly iconOptions: { value: string; label: string; }[]; readonly phoneCountries: import("@suntelecoms/ngx-dynamic-form").PhoneCountry[]; readonly fields: import("@angular/core").Signal; readonly selectedField: import("@angular/core").Signal; readonly previewConfig: import("@angular/core").Signal; readonly stepperPreviewConfig: import("@angular/core").Signal; readonly groupedTypes: import("@angular/core").Signal<{ label: "Saisie" | "Choix" | "Mise en page"; types: FieldTypeDef[]; }[]>; readonly stepperIsEmpty: import("@angular/core").Signal; private mutateFields; getIcon(type: string): string; getFieldDisplay(field: DynamicFormField): string; isInputField(type: FieldType): boolean; hasOptions(type: FieldType): boolean; needsRows(type: FieldType): boolean; isHeading(type: FieldType): boolean; isDivider(type: FieldType): boolean; addField(type: FieldType): void; removeField(i: number, e: Event): void; moveUp(i: number, e: Event): void; moveDown(i: number, e: Event): void; selectField(i: number): void; duplicateField(i: number, e: Event): void; updateProp(prop: keyof DynamicFormField, value: any): void; updateRemoteSearch(prop: keyof RemoteSearchConfig, value: any): void; updateValidation(prop: keyof FieldValidation, value: any): void; getOptions(): SelectOption[]; addOption(): void; updateOption(idx: number, prop: 'label' | 'value' | 'dependsOnValue', value: string): void; /** Options statiques du champ dont dépend le champ sélectionné (vide si liste API ou autre type). */ parentStaticOptions(): SelectOption[]; removeOption(idx: number): void; setOptionsSource(useUrl: boolean): void; private deleteProp; setPattern(regex: string): void; updateValidationMessage(key: keyof NonNullable, value: string): void; getConditions(): FieldCondition[]; allFieldKeysExcludingCurrent(): string[]; setConditionLogic(logic: 'AND' | 'OR'): void; addCondition(): void; removeCondition(index: number): void; updateCondition(index: number, key: keyof FieldCondition, value: any): void; getOptionsFilterConditions(): FieldCondition[]; setOptionsFilterLogic(logic: 'AND' | 'OR'): void; addOptionsFilterCondition(): void; removeOptionsFilterCondition(index: number): void; updateOptionsFilterCondition(index: number, key: keyof FieldCondition, value: any): void; toggleUniqueCheck(enabled: boolean): void; setUniqueCheckProp(key: 'url' | 'message', value: string): void; toggleLookup(enabled: boolean): void; setLookupUrl(value: string): void; setLookupMethod(value: string): void; getLookupPopulateText(): string; setLookupTriggerOn(value: string): void; setLookupPopulateText(text: string): void; getRequiredWhenConditions(): FieldCondition[]; addRequiredWhenCondition(): void; removeRequiredWhenCondition(index: number): void; updateRequiredWhenCondition(index: number, key: keyof FieldCondition, value: any): void; updateCurrentStep(key: string, value: any): void; getStepAtLeastOneOf(): string; setStepAtLeastOneOf(text: string): void; getStepBeforeNext(): StepGuard | undefined; toggleBeforeNext(enabled: boolean): void; setBeforeNextProp(key: keyof StepGuard, value: string): void; /** Presets de masques de saisie courants */ readonly maskPresets: { label: string; value: string; }[]; isCustomMask(): boolean; setMaskPreset(value: string): void; getMaskPresetValue(): string; /** Convertit le Record en texte CSS pour l'éditeur */ getStylesText(): string; /** Parse le texte CSS et met à jour la propriété styles */ setStylesText(cssText: string): void; setMode(stepper: boolean): void; selectStep(i: number): void; addStep(): void; deleteStep(i: number, e: Event): void; startRename(i: number, e: Event): void; confirmRename(i: number): void; cancelRename(): void; save(): void; loadSchema(id: string): void; private applySchema; deleteSchema(id: string, e: Event): void; newForm(): void; exportJSON(): void; exportTypeScript(): void; copyExport(): Promise; copyFormUrl(): void; labelOf(type: FieldType): string; trackByKey(_i: number, field: DynamicFormField): string; trackByIdx(i: number): number; private _defaultLabel; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};