import { AfterViewInit, Injector } from '@angular/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import { OTranslateService } from '../../../../services/translate/o-translate.service';
import { OContextMenuComponent } from '../../../contextmenu/o-context-menu.component';
import type { OColumn } from '../../column/o-column.class';
import { OTableBase } from '../../o-table-base.class';
import * as i0 from "@angular/core";
export declare const DEFAULT_TABLE_CONTEXT_MENU_INPUTS: string[];
export declare class OTableContextMenuComponent implements AfterViewInit {
    protected injector: Injector;
    table: OTableBase;
    contextMenu: OContextMenuComponent;
    isVisibleInsert: BehaviorSubject<boolean>;
    isVisibleEdit: BehaviorSubject<boolean>;
    isVisibleDetail: BehaviorSubject<boolean>;
    isVisibleCopy: BehaviorSubject<boolean>;
    isVisibleSelectAll: BehaviorSubject<boolean>;
    isVisibleRefresh: BehaviorSubject<boolean>;
    isVisibleDelete: BehaviorSubject<boolean>;
    isVisibleFilter: BehaviorSubject<boolean>;
    isVisibleGroupByRow: BehaviorSubject<boolean>;
    isEnabledGroupByColumn: BehaviorSubject<boolean>;
    isEnabledUnGroupByColumn: BehaviorSubject<boolean>;
    isEnabledUnGroupAllColumn: BehaviorSubject<boolean>;
    isDataCell: BehaviorSubject<boolean>;
    isTableGroupedRow: BehaviorSubject<boolean>;
    isGroupableCell: BehaviorSubject<boolean>;
    set showInsert(value: boolean);
    get showInsert(): boolean;
    set showEdit(value: boolean);
    get showEdit(): boolean;
    set showViewDetail(value: boolean);
    get showViewDetail(): boolean;
    set showCopy(value: boolean);
    get showCopy(): boolean;
    set showSelectAll(value: boolean);
    get showSelectAll(): boolean;
    set showRefresh(value: boolean);
    get showRefresh(): boolean;
    set showDelete(value: boolean);
    get showDelete(): boolean;
    set showFilter(value: boolean);
    get showFilter(): boolean;
    set showGroupByRow(value: boolean);
    get showGroupByRow(): boolean;
    protected defaultContextMenu: OContextMenuComponent;
    protected _row: any;
    protected column: OColumn;
    protected translateService: OTranslateService;
    protected contextMenuSubscription: Subscription;
    isDateColumn: BehaviorSubject<boolean>;
    constructor(injector: Injector, table: OTableBase);
    ngAfterViewInit(): void;
    registerContextMenuListeners(): void;
    gotoDetails(event: any): void;
    edit(event: any): void;
    add(): void;
    selectAll(): void;
    unSelectAll(): void;
    copyAll(): void;
    copyCell(event: any): void;
    copySelection(): void;
    copyRow(event: any): void;
    delete(event: any): void;
    refresh(): void;
    filterByValue(): void;
    private createColumnValueFilter;
    private getSelectedValues;
    groupByColumn(dateType?: string): void;
    unGroupByColumn(): void;
    unGroupAll(): void;
    get labelFilterByColumn(): string;
    get labelGroupByColumn(): string;
    get labelUnGroupByColumn(): string;
    get row(): any;
    set row(value: any);
    get availableColumnAggregates(): string[];
    filterByColumn(event: any): void;
    checkVisibleFilter(): void;
    checkGroupByRowOptions(): void;
    foundColumnInGroupedColumns(column: any): boolean;
    changeAggregateFunction(arg: any, aggregateFnName: string): void;
    protected initProperties(param: any): void;
    expandRowGroupsSameLevel(): void;
    collapseRowGroupsSameLevel(): void;
    isColumnDate(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OTableContextMenuComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OTableContextMenuComponent, "o-table-context-menu", never, { "contextMenu": { "alias": "context-menu"; "required": false; }; "showInsert": { "alias": "insert"; "required": false; }; "showEdit": { "alias": "edit"; "required": false; }; "showViewDetail": { "alias": "view-detail"; "required": false; }; "showCopy": { "alias": "copy"; "required": false; }; "showSelectAll": { "alias": "select-all"; "required": false; }; "showRefresh": { "alias": "refresh"; "required": false; }; "showDelete": { "alias": "delete"; "required": false; }; "showFilter": { "alias": "filter"; "required": false; }; "showGroupByRow": { "alias": "group-by-row"; "required": false; }; }, {}, never, never, true, never>;
}
