import { AfterViewInit, ElementRef, EventEmitter, Injector } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { MatDialogRef } from '@angular/material/dialog';
import { MatSelectionList, MatSelectionListChange } from '@angular/material/list';
import { MatRadioChange } from '@angular/material/radio';
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
import { Observable, Subscription } from 'rxjs';
import { ServiceResponse } from '../../../../../interfaces/service-response.interface';
import { OColumnValueFilter } from '../../../../../types/table/o-column-value-filter.type';
import { TableFilterByColumnData, TableFilterByColumnDialogResult } from '../../../../../types/table/o-table-filter-by-column-data.type';
import { OTableComponent } from '../../../o-table.component';
import { OFilterColumn } from '../../header/table-columns-filter/columns/o-table-columns-filter-column.component';
import type { OColumn } from '../../../column/o-column.class';
import { OTableFilterByColumnService } from './o-table-filter-by-column.service';
import { SelectionModel } from '@angular/cdk/collections';
import { BaseService } from '../../../../../services/base-service.class';
import * as i0 from "@angular/core";
export declare class OTableFilterByColumnDataDialogComponent implements AfterViewInit {
    protected injector: Injector;
    dialogRef: MatDialogRef<OTableFilterByColumnDataDialogComponent>;
    private readonly filterService;
    acceptAction: TableFilterByColumnDialogResult;
    cancelAction: TableFilterByColumnDialogResult;
    clearAction: TableFilterByColumnDialogResult;
    column: OColumn;
    preloadValues: boolean;
    private mode;
    startView: 'month' | 'year' | 'multi-year' | '';
    onSortFilterValuesChange: EventEmitter<OFilterColumn>;
    private readonly isCustomFilterSubject;
    isCustomFilter: Observable<boolean>;
    private readonly isDefaultFilterSubject;
    isDefaultFilter: Observable<boolean>;
    fcText: FormControl<any>;
    fcFrom: FormControl<any>;
    fcTo: FormControl<any>;
    protected columnData: TableFilterByColumnData[];
    protected tableData: any[];
    private readonly listDataSubject;
    protected _listData: Observable<TableFilterByColumnData[]>;
    protected service: BaseService<ServiceResponse>;
    filter: ElementRef;
    filterValueList: MatSelectionList;
    activeSortDirection: 'asc' | 'desc' | '';
    sourceData: 'current-page' | 'all-data';
    queryByFilterColumnSubscription: Subscription;
    table: OTableComponent;
    showFilterValuesOption: boolean;
    queryMethodName: string;
    previousFilter: OColumnValueFilter;
    selection: SelectionModel<TableFilterByColumnData>;
    visibleColumnsArray: string[];
    separator: string;
    filterColumnDefinition: OFilterColumn;
    private readonly momentSrv;
    private dateAdapter;
    constructor(injector: Injector, dialogRef: MatDialogRef<OTableFilterByColumnDataDialogComponent>, filterService: OTableFilterByColumnService, data: {
        column: OColumn;
        table: OTableComponent;
    });
    private initFromData;
    private initialize;
    private initializeDateAdapter;
    private createEmptyFilter;
    private parseDataAndInitializeDataList;
    ngAfterViewInit(): void;
    get listData(): Observable<TableFilterByColumnData[]>;
    set listData(arg: Observable<TableFilterByColumnData[]>);
    protected initializeDataList(filter?: OColumnValueFilter): void;
    protected initializeFilterEvent(): void;
    protected initializeCustomFilterValues(filter: OColumnValueFilter): void;
    areAllSelected(): boolean;
    isIndeterminate(): boolean;
    onSelect(event: MatSelectionListChange): void;
    onSelectAllChange(event: MatCheckboxChange): void;
    getColumnValuesFilter(): OColumnValueFilter;
    clearValues(): void;
    onClickSortValues(): void;
    protected sortData(): void;
    protected sortFunction(a: any, b: any): number;
    onSlideChange(e: MatSlideToggleChange): void;
    isTextType(): boolean;
    isNumericType(): boolean;
    isDateType(): boolean;
    getFixedDimensionClass(): boolean;
    getSortByAlphaIcon(): string;
    protected getFilterColumn(): OFilterColumn;
    getStartedViewDatepicker(): string;
    protected getTypedValue(control: FormControl): any;
    onChangeDataSource(event: MatRadioChange): void;
    private getData;
    isSelected(item: TableFilterByColumnData): boolean;
    compareOptions(): ((o1: TableFilterByColumnData, o2: TableFilterByColumnData) => boolean) | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<OTableFilterByColumnDataDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OTableFilterByColumnDataDialogComponent, "o-table-filter-by-column-data-dialog", never, {}, {}, never, never, true, never>;
}
