import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { MatMenu } from '@angular/material/menu';
import { Observable } from 'rxjs';
import { IChartOnDemandService } from '../../../../../interfaces/chart-on-demand.interface';
import type { OTableMenu } from '../../../../../interfaces/o-table-menu.interface';
import { IReportService } from '../../../../../interfaces/report-on-demand-service.interface';
import { DialogService } from '../../../../../services/dialog.service';
import { OntimizeExportDataProviderService } from '../../../../../services/ontimize-export-data-provider.service';
import { SnackBarService } from '../../../../../services/snackbar.service';
import { OTranslateService } from '../../../../../services/translate/o-translate.service';
import type { OPermissions } from '../../../../../types/o-permissions.type';
import type { OTableMenuPermissions } from '../../../../../types/table/o-table-menu-permissions.type';
import { OTableBase } from '../../../o-table-base.class';
import { OTableOptionComponent } from '../table-option/o-table-option.component';
import * as i0 from "@angular/core";
export declare const DEFAULT_INPUTS_O_TABLE_MENU: string[];
export declare const DEFAULT_OUTPUTS_O_TABLE_MENU: any[];
export declare class OTableMenuComponent implements OTableMenu, OnInit, AfterViewInit, OnDestroy {
    protected injector: Injector;
    protected dialog: MatDialog;
    protected cd: ChangeDetectorRef;
    protected table: OTableBase;
    chartOnDemandService: IChartOnDemandService;
    reportService: IReportService;
    selectAllCheckbox: boolean;
    exportButton: boolean;
    showConfigurationOption: boolean;
    showFilterOption: boolean;
    columnsVisibilityButton: boolean;
    showGroupByOption: boolean;
    showResetWidthOption: boolean;
    showReportOnDemandOption: boolean;
    showChartsOnDemandOption: boolean;
    onVisibleFilterOptionChange: EventEmitter<any>;
    protected dialogService: DialogService;
    protected translateService: OTranslateService;
    protected snackBarService: SnackBarService;
    matMenu: MatMenu;
    selectAllCheckboxOption: OTableOptionComponent;
    exportButtonOption: OTableOptionComponent;
    columnsVisibilityButtonOption: OTableOptionComponent;
    filterMenuButton: ElementRef;
    configurationMenuButton: ElementRef;
    filterMenu: MatMenu;
    configurationMenu: MatMenu;
    columnFilterOption: OTableOptionComponent;
    chartMenu: MatMenu;
    protected permissions: OTableMenuPermissions;
    protected mutationObservers: MutationObserver[];
    protected exportDataProvider: OntimizeExportDataProviderService;
    constructor(injector: Injector, dialog: MatDialog, cd: ChangeDetectorRef, table: OTableBase, chartOnDemandService: IChartOnDemandService, reportService: IReportService);
    ngOnInit(): void;
    get isColumnFilterOptionActive(): boolean;
    ngAfterViewInit(): void;
    protected disableOTableOptionComponent(comp: OTableOptionComponent): void;
    protected disableButton(buttonEL: ElementRef): void;
    ngOnDestroy(): void;
    registerOptions(oTableOptions: OTableOptionComponent[]): void;
    protected setPermissionsToOTableOption(perm: OPermissions, option: OTableOptionComponent): void;
    getPermissionByAttr(attr: string): OPermissions;
    get isSelectAllOptionActive(): boolean;
    get showSelectAllCheckbox(): boolean;
    get rowHeightObservable(): Observable<string>;
    get enabledSelectAllCheckbox(): boolean;
    get showExportButton(): boolean;
    get enabledExportButton(): boolean;
    get showColumnsVisibilityButton(): boolean;
    get showReportOnDemandButton(): boolean;
    get enabledColumnsVisibilityButton(): boolean;
    get showFilterMenu(): boolean;
    get enabledFilterMenu(): boolean;
    get showConfigurationMenu(): boolean;
    get enabledConfigurationMenu(): boolean;
    get showGroupByButton(): boolean;
    get showChartsOnDemandButton(): boolean;
    get showFirstDivider(): boolean;
    get showSecondDivider(): boolean;
    get showAnyOptionThirdSection(): boolean;
    get showAnyOptionFirstSection(): boolean;
    get showAnyOptionSecondSection(): boolean;
    onShowsSelects(): void;
    onExportButtonClicked(): void;
    protected parseColumnsVisible(): any;
    onChangeColumnsVisibilityClicked(): void;
    onGroupByClicked(): void;
    onFilterByColumnClicked(): void;
    onStoreFilterClicked(): void;
    onLoadFilterClicked(): void;
    onClearFilterClicked(): void;
    onChartsOnDemandClicked(): void;
    onResetWidthClicked(): void;
    onReportOnDemandClicked(): void;
    onStoreConfigurationClicked(): void;
    onApplyConfigurationClicked(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<OTableMenuComponent, [null, null, null, null, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OTableMenuComponent, "o-table-menu", never, { "selectAllCheckbox": "select-all-checkbox"; "exportButton": "export-button"; "columnsVisibilityButton": "columns-visibility-button"; "showConfigurationOption": "show-configuration-option"; "showFilterOption": "show-filter-option"; "showGroupByOption": "show-group-by-option"; "showResetWidthOption": "show-reset-width-option"; "showReportOnDemandOption": "show-report-on-demand-option"; "showChartsOnDemandOption": "show-charts-on-demand-option"; }, {}, never, ["*"], false, never>;
}
