import { PageElementTable } from "../page-element/page-element-table";
import { IPageElementMatTabGroup } from "../page-element/page-element-mat-tab-group";
import { FormField } from "../form-field/form-field";


export interface IBasicStrucElement { validateDefaultFieldValues?(): void; }
export interface IFormStructElement extends IBasicStrucElement { fields: FormField[] }
export interface BasicStruct { elements?: Array<IBasicStrucElement> };

export interface SearchPageStruct extends BasicStruct {
  filters: Array<FormField>;
  resultTable: PageElementTable<any>;
}

export interface UpdatePageStruct extends BasicStruct {
  formFields?: Array<FormField>;
  childTables?: PageElementTable<any>[];
}

export interface UpdateDialogStruct extends BasicStruct {
  formFields: Array<FormField>;
}


export interface UpdatePageTabGroupStruct extends UpdatePageStruct {
  tabGroupForms: IPageElementMatTabGroup;
}
