import { ChangeDetectorRef, EventEmitter, OnInit } from '@angular/core';
import { CardData, CardDataViewComponent, ColumnDefinition, DataTableComponent, DataViewComponent, DropdownChangeEvent, IDataFilter } from 'verben-ng-ui';
import { FormsService } from './form-group.service';
import { UtilService } from '../../services/util.service';
import { HttpWebRequestService } from '../../services/http-web-request.service';
import { PagedResult } from '../../models/PagedResult';
import { EnvironmentService } from '../../services/environment.service';
import { Subject } from 'rxjs';
import { Status } from '../../models/status';
import { Router } from '@angular/router';
import { FormEntity } from '../../models/FormEntity';
import * as i0 from "@angular/core";
export declare class FormGroupComponent implements OnInit {
    private utilService;
    private server;
    private cdr;
    private envSvc;
    private router;
    private FormGroupSvc;
    visibleColumnDef: ColumnDefinition<FormEntity>[];
    styles: any;
    data: FormEntity[];
    path: string;
    cardData: CardData[];
    selectedFilterTableCount: number;
    selectedSortTableCount: number;
    selectedColumnTableCount: number;
    showFilter: boolean;
    showSort: boolean;
    showColumn: boolean;
    currentData: CardData | null;
    cardDataView: CardDataViewComponent;
    dataView: DataViewComponent;
    tableView: DataTableComponent<FormEntity>;
    application: string | null;
    pageSize: number;
    skip: number;
    hasMore: boolean;
    onViewProcessClicked: EventEmitter<string>;
    searchTerm: string;
    pageState: PagedResult<FormEntity> | null;
    isOpen: boolean;
    openDropdownId: string | null;
    currentFilters: IDataFilter[];
    currentSorts: IDataFilter[];
    searchTerm$: Subject<string>;
    statusOptions: Status[];
    users: FormEntity[];
    visibleColumns: IDataFilter[];
    filterArray: IDataFilter[];
    closePopUp(row: FormEntity): void;
    toggleTable(row: FormEntity): void;
    sortOptions: IDataFilter[];
    private currentSearchTerm;
    constructor(utilService: UtilService, server: HttpWebRequestService, cdr: ChangeDetectorRef, envSvc: EnvironmentService, router: Router, FormGroupSvc: FormsService);
    ngOnInit(): Promise<void>;
    getAllTaskUsers(): Promise<FormEntity[] | undefined>;
    clearLogs(sortValue?: string, order?: string): void;
    getForms(): Promise<FormEntity[] | undefined>;
    loadMore(): void;
    reset(): void;
    onUserSelected(event: DropdownChangeEvent, item: FormEntity): void;
    onClear(event: Event, item: FormEntity): void;
    getItemLabel(name: string): string;
    getAsyncLabel(value: any): string;
    setUpCardData(): void;
    setUpCardDataExtra(baseData: FormEntity[]): void;
    goToCardView(data: FormEntity): void;
    goToTableView(): void;
    viewProcesses(code: string): void;
    userCardClicked(item: CardData, toggleView?: boolean): void;
    saveFormGroup(): Promise<void>;
    toggleIsValidate(value: boolean, row: FormEntity): void;
    tableSaveUser(form: FormEntity, callBack: () => any): Promise<void>;
    updateTable(): void;
    onFieldCountChange(value: any, source: FormEntity): void;
    getFieldCount(source: FormEntity): string;
    navigateToFields(card: FormEntity): void;
    onClose(): void;
    openDropdown(item: any): void;
    onSearch(event: {
        key: string;
        value: string;
    }): Promise<void>;
    isDropdownOpen(item: any): boolean;
    onViewChange(isGridView: boolean): void;
    onStateChange(event: {
        key: string;
        value: boolean;
    }): void;
    showTableView: boolean;
    onSelectionChange(selectedRows: FormEntity[]): void;
    onColumnsUpdated(updatedColumns: IDataFilter[]): void;
    updateFiltersAndSorts(isSearch?: boolean): Promise<undefined>;
    postSearch(payload: any): Promise<FormEntity[] | undefined>;
    onFilterApplied(appliedFilter: IDataFilter[]): void;
    getCondition(value: any): any;
    onSortUpdated(updatedSorts: IDataFilter[]): void;
    handleSearch(event: {
        key: string;
        value: string;
    }): void;
    handleExport(exportedData: Partial<any>[]): void;
    private downloadCSV;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormGroupComponent, "lib-form-group", never, { "path": { "alias": "path"; "required": false; }; "application": { "alias": "application"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; }, { "onViewProcessClicked": "onViewProcessClicked"; }, never, never, false, never>;
}
