import { OnInit, OnDestroy, AfterViewInit, Renderer2, ElementRef, QueryList, SimpleChanges, OnChanges } from '@angular/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http';
export interface SearchDate {
    dateColumn: string;
    dateFrom: string;
    dateTo: string;
}
export interface Order {
    column: string;
    dir: string;
}
export interface RequestBody {
    userId: string;
    draw: number;
    start: number;
    length: number;
    searchText: string;
    order: Order;
    searchables: string[];
    searchDate: SearchDate;
}
export interface Info {
    admins: string[];
    users: string[];
}
export interface ResponseBody {
    draw: number;
    recordsFiltered: number;
    data: any[];
    info: Info;
}
export declare class DataTableComponent implements OnDestroy, OnInit, AfterViewInit, OnChanges {
    private http;
    private renderer;
    constructor(http: HttpClient, renderer: Renderer2);
    datatableDiv: ElementRef;
    datatableHeader: ElementRef;
    datatableRows: QueryList<ElementRef>;
    oddRowColor: string;
    evenRowColor: string;
    headerColor: string;
    userId: string;
    apiUrl: string;
    ready: boolean;
    tableObjectId: string;
    datatableWidth: string;
    enableAddUser: boolean;
    existingUser: boolean;
    selectAllRows: boolean;
    showUsersPopup: boolean;
    showGrantPopup: boolean;
    showRevokePopup: boolean;
    searchColumnName: any;
    requestBody: RequestBody;
    responseBody: ResponseBody;
    dataDisplayed: any[];
    infoTable: Info;
    userSelected: string;
    page: number;
    headersName: any[];
    dateHeadersName: any[];
    editable: boolean;
    dropdownList: any[];
    selectedItems: Map<string, Array<any>>;
    dropdownSettings: {
        singleSelection: boolean;
        text: string;
        selectAllText: string;
        unSelectAllText: string;
        enableSearchFilter: boolean;
    };
    readyToDisplay: boolean;
    loading: boolean;
    subscription: Subscription;
    subscriptionLoaded: Subscription;
    dataSubject: BehaviorSubject<String>;
    data$: Observable<String>;
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    selectAll(): void;
    selectRow(indexRow: any): void;
    changeUserCall(): void;
    logSelected(): void;
    headerNameClicked(column: string): void;
    getData(): Observable<Object>;
    modifyData(oldRow: any, newRow: any): Observable<Object>;
    addUserCall(): void;
    addUser(newUser: string): Observable<Object>;
    deleteUserCall(user: string): void;
    deleteUser(user: string): Observable<Object>;
    grantAdminCall(user: string): void;
    grantAdmin(user: string): Observable<Object>;
    revokeAdminCall(user: string): void;
    revokeAdmin(user: string): Observable<Object>;
    grantAccessToUserCall(user: string): void;
    grantAccessToUser(user: string, rowsSelected: string[]): Observable<Object>;
    revokeAccessFromUserCall(user: string): void;
    revokeAccessFromUser(user: string, rowsSelected: string[]): Observable<Object>;
    emitData(): void;
    toggleEdit(): void;
    onValueUpdate(e: any, rowNumber: string, colName: string): void;
    onDateValueUpdate(newDateValue: any, rowNumber: string, colName: string): void;
    deleteRow(row: any): void;
    autoGrowTextZone(e: any): void;
    autoResizeTextZone(e: any): void;
    regex: RegExp;
    val: boolean;
    isDate(value: any): boolean;
    onItemSelect(item: any): void;
    OnItemDeSelect(item: any): void;
    onSelectAll(items: any): void;
    onDeSelectAll(): void;
    searchTextInColumns(searchEvent: any): void;
    changingDateColumn(newDateColumnValue: any): void;
    searchDateFromChange(newDateFrom: any): void;
    searchDateToChange(newDateTo: any): void;
    castNumber(value: any): number;
    MathMin(a: number, b: number): number;
    pageBack(): void;
    pageForward(): void;
    pageFirst(): void;
    pageLast(): void;
    readonly maxPage: number;
}
