import { ChangeDetectorRef, OnInit, QueryList } from '@angular/core';
import { FormBuilder } from '@angular/forms';
import { CardData, CardDataViewComponent, ColumnDefinition, DataTableComponent, DataViewComponent, DropdownLoadEvent, IDataFilter, VerbenPopUpComponent } from 'verben-ng-ui';
import { FormsService } from './forms.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 { Form } from '../../models/Form';
import { FormEntity } from '../../models/FormEntity';
import * as i0 from "@angular/core";
export declare class FormsComponent implements OnInit {
    private utilService;
    private server;
    private cdr;
    private fb;
    private envSvc;
    private formsSvc;
    visibleColumnDef: ColumnDefinition<Form>[];
    styles: any;
    data: Form[];
    cardData: CardData[];
    currentData: CardData | null;
    cardDataView: CardDataViewComponent;
    dataView: DataViewComponent;
    tableView: DataTableComponent<Form>;
    popUps: QueryList<VerbenPopUpComponent>;
    pageSize: number;
    searchDebounceTime: number;
    pageState: PagedResult<Form> | null;
    isOpen: boolean;
    openDropdownId: string | null;
    isGroupOpen: boolean;
    openGroupDropdownId: string | null;
    currentFilters: IDataFilter[];
    currentSorts: IDataFilter[];
    searchTerm$: Subject<string>;
    groups: FormEntity[];
    visibleColumns: IDataFilter[];
    filterArray: IDataFilter[];
    sortOptions: IDataFilter[];
    private currentSearchTerm;
    constructor(utilService: UtilService, server: HttpWebRequestService, cdr: ChangeDetectorRef, fb: FormBuilder, envSvc: EnvironmentService, formsSvc: FormsService);
    ngOnInit(): Promise<void>;
    getFormEntities(): Promise<FormEntity[] | undefined>;
    loadMoreFormEntities(event: DropdownLoadEvent): Promise<FormEntity[]>;
    searchFormEntities(data: string, event: DropdownLoadEvent): Promise<FormEntity[]>;
    getAsyncLabel(value: any): Promise<string>;
    getAllForms(): Promise<Form[] | undefined>;
    loadMore(): Promise<void>;
    setUpCardData(): void;
    setUpCardDataExtra(baseData: Form[]): void;
    goToCardView(data: Form): void;
    goToTableView(): void;
    viewResponses(code: string): void;
    formCardClicked(item: CardData, toggleView?: boolean): void;
    saveForm(): Promise<void>;
    tableSaveForm(form: Form, callBack: () => any): Promise<void>;
    updateTable(): void;
    updateItem(value: any, key: string): any;
    closePopUp(): void;
    closeGroupPopUp(): void;
    onViewChange(isGridView: boolean): void;
    onStateChange(event: {
        key: string;
        value: boolean;
    }): void;
    showTableView: boolean;
    onSelectionChange(selectedRows: Form[]): void;
    onColumnsUpdated(updatedColumns: IDataFilter[]): void;
    updateFiltersAndSorts(isSearch?: boolean): Promise<undefined>;
    loadMoreFiltersAndSorts(): Promise<PagedResult<Form> | undefined>;
    onFilterUpdated(updatedFilters: IDataFilter[] | string): void;
    onSortUpdated(updatedSorts: IDataFilter[]): void;
    handleSearch(event: {
        key: string;
        value: string;
    }): void;
    handleExport(exportedData: Partial<any>[]): void;
    private downloadCSV;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormsComponent, "lib-forms", never, { "pageSize": { "alias": "pageSize"; "required": false; }; "searchDebounceTime": { "alias": "searchDebounceTime"; "required": false; }; }, {}, never, never, false, never>;
}
