import { ChangeDetectorRef, OnInit, QueryList } from '@angular/core';
import { CardData, CardDataViewComponent, ColumnDefinition, DataTableComponent, DataViewComponent, IDataFilter, VerbenPopUpComponent } from 'verben-ng-ui';
import { FormBuilder } from '@angular/forms';
import { Subject } from 'rxjs';
import { EnvironmentService } from '../../services/environment.service';
import { PagedResult } from '../../models/PagedResult';
import { HttpWebRequestService } from '../../services/http-web-request.service';
import { TaskNotification } from '../../models/TaskNotification';
import { MessageMedium } from '../../models/MessageMedium';
import { UtilService } from '../../services/util.service';
import { TaskNotificationService } from './task-notification.service';
import { SMSConfig } from '../../models/SMSConfig';
import { MailConfig } from '../../models/MailConfig';
import { ReportSchedule } from '../../models/ReportSchedule';
import { EditorConfig, EditorMode } from 'verben-reporting-ui';
import * as i0 from "@angular/core";
export declare class TaskNotificationComponent implements OnInit {
    private utilService;
    private server;
    private cdr;
    private fb;
    private envSvc;
    service: TaskNotificationService;
    visibleColumnDef: ColumnDefinition<any>[];
    styles: any;
    data: TaskNotification[];
    cardData: CardData[];
    currentData: CardData | null;
    workflowAPI: string;
    configAPI: string;
    cardDataView: CardDataViewComponent;
    dataView: DataViewComponent;
    tableView: DataTableComponent<TaskNotification>;
    popUps: QueryList<VerbenPopUpComponent>;
    pageSize: number;
    searchDebounceTime: number;
    pageState: PagedResult<TaskNotification> | null;
    isOpen: boolean;
    openDropdownId: string | null;
    currentFilters: IDataFilter[];
    currentSorts: IDataFilter[];
    searchTerm$: Subject<string>;
    smsConfigs: SMSConfig[];
    mailConfigs: MailConfig[];
    reportSchedules: ReportSchedule[];
    mediumOptions: string[];
    notificationTypeOptions: string[];
    smsRef: MessageMedium;
    mailRef: MessageMedium;
    editorMode: EditorMode;
    editorConfig: EditorConfig;
    visibleColumns: IDataFilter[];
    filterArray: IDataFilter[];
    sortOptions: IDataFilter[];
    private currentSearchTerm;
    constructor(utilService: UtilService, server: HttpWebRequestService, cdr: ChangeDetectorRef, fb: FormBuilder, envSvc: EnvironmentService, service: TaskNotificationService);
    ngOnInit(): Promise<void>;
    getAllTaskNotifications(): Promise<TaskNotification[] | undefined>;
    loadMore(): Promise<void>;
    setUpCardData(): void;
    setUpCardDataExtra(baseData: TaskNotification[]): void;
    goToCardView(data: TaskNotification): void;
    goToTableView(): void;
    viewVendors(code: string): void;
    cardClicked(item: CardData, toggleView?: boolean): void;
    saveTaskNotification(): Promise<void>;
    tableSaveTaskNotification(form: TaskNotification, callBack: () => any): Promise<void>;
    updateTable(): void;
    updateItem(value: any, key: string): any;
    closePopUp(): void;
    onViewChange(isGridView: boolean): void;
    onStateChange(event: {
        key: string;
        value: boolean;
    }): void;
    showTableView: boolean;
    onSelectionChange(selectedRows: TaskNotification[]): void;
    onColumnsUpdated(updatedColumns: IDataFilter[]): void;
    updateFiltersAndSorts(isSearch?: boolean): Promise<undefined>;
    loadMoreFiltersAndSorts(): Promise<PagedResult<TaskNotification> | undefined>;
    onFilterUpdated(updatedFilters: IDataFilter[] | string): void;
    onSortUpdated(updatedSorts: IDataFilter[]): void;
    handleSearch(event: {
        key: string;
        value: string;
    }): void;
    handleExport(exportedData: Partial<any>[]): void;
    private downloadCSV;
    toggleIsMessageId(item: TaskNotification, isMessageId: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TaskNotificationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TaskNotificationComponent, "lib-task-notification", never, {}, {}, never, never, false, never>;
}
