import { OnInit, ElementRef, EventEmitter, QueryList } from '@angular/core';
import { CfCoreComponent } from '../core/core.component';
import { FormGroup } from '@angular/forms';
import { CfFormQuestionComponent } from '../form-question/form-question.component';
import { CfGroupQuestionComponent } from '../group-question/group-question.component';
import { FormQuestionControlService } from '../../services/form-generator/form-question-control.service';
import { ButtonModel } from '../../models/button/button.model';
import { FormModel } from '../../models/form/form.model';
import { FormStylingModel } from '../../models/form/form-styling.model';
import { TemplateService } from '../../services/template-service/template.service';
/**
*
CF Form Component
*
*
* import {{'{'}} FormModel {{'}'}} from 'cedrus-fusion'
* import {{'{'}} FormStylingModel {{'}'}} from 'cedrus-fusion'
* <cf-form></cf-form>
*
*
*/
export declare class CfFormComponent extends CfCoreComponent implements OnInit {
elementRef: ElementRef;
private fqcs;
/**
* Example:
* {{'{'}}
* questions: this.myQuestions,
* key: 'person',
* payload: this.person,
* submitButton: {{'{'}} label: 'Save' {{'}'}}
* {{'}'}}
* questions: array
* Array with questions.
* key: string
* Form key
* payload: any
* Data to be patched into form.
* submitButton: ButtonModel
* Form submit button
*/
properties: FormModel;
/**
* Styling object:
* container: StylingModel
* Styling properties for main container
* form: StylingModel
* Styling for the form
* table: StylingModel
* Styling for the table with questions
* content: StylingModel
* Styling for the form content
* submitSection: StylingModel
* Styling for the form submit section
* submitButton: ButtonStylingModel
* Styling for submit button
*/
styling: FormStylingModel;
/**
* Array with questions
*/
questions: any[];
/** @hidden
* Maximum form columns
*/
/**
* Questions from the template to be added to the questions sent from the user
*/
commonQuestions: any[];
/**
* Name of form group with questions
*/
key: string;
/**
* Data to be patched into form
*/
payload: any;
/**
* Form submit button
*/
submitButton: ButtonModel;
/** @hidden */
form: FormGroup;
/** @hidden */
formQuestions: QueryList;
/** @hidden */
groupQuestions: QueryList;
/**
* Output event with form payload
*/
onSubmit: EventEmitter<{}>;
/** @hidden */
constructor(elementRef: ElementRef, /**@hidden */ templateService: TemplateService, fqcs: FormQuestionControlService);
/** @hidden */
ngOnInit(): void;
/**
* Method to submit form value and emit it
*/
onPressSubmit(): any;
/** @hidden */
ngAfterContentInit(): void;
/** @hidden */
populatePayload(): void;
/**@hidden */
ngOnChanges(changes: any): void;
}