import { ElementRef, EventEmitter, OnChanges, OnDestroy, Renderer2, SimpleChanges } from '@angular/core';
import { PoLanguageService } from '../../../services/po-language/po-language.service';
import { PoCheckboxGroupOption } from '../../po-field/po-checkbox-group/interfaces/po-checkbox-group-option.interface';
import { PoPageSlideComponent } from '../../po-page/po-page-slide';
import { PoPopoverComponent } from '../../po-popover/po-popover.component';
import { PoTableColumn } from '../interfaces/po-table-column.interface';
export declare const poTableColumnManagerLiteralsDefault: {
    en: {
        columnsManager: string;
        restoreDefault: string;
    };
    es: {
        columnsManager: string;
        restoreDefault: string;
    };
    pt: {
        columnsManager: string;
        restoreDefault: string;
    };
    ru: {
        columnsManager: string;
        restoreDefault: string;
    };
};
export declare class PoTableColumnManagerComponent implements OnChanges, OnDestroy {
    private readonly renderer;
    popover: PoPopoverComponent;
    pageSlideColumnsManager: PoPageSlideComponent;
    columns: Array<PoTableColumn>;
    target: ElementRef;
    colunsDefault: Array<PoTableColumn>;
    lastVisibleColumnsSelected: Array<PoTableColumn>;
    visibleColumnsChange: EventEmitter<PoTableColumn[]>;
    changeVisibleColumns: EventEmitter<string[]>;
    changeFixedColumns: import("@angular/core").OutputEmitterRef<string[]>;
    initialColumns: EventEmitter<string[]>;
    hideActionFixedColumns: boolean;
    literals: any;
    columnsOptions: Array<PoCheckboxGroupOption>;
    visibleColumns: Array<string>;
    columnUpdate: any;
    private _maxColumns;
    private defaultColumns;
    private resizeListener;
    private restoreDefaultEvent;
    private lastEmittedValue;
    private readonly minColumns;
    private _componentsSize?;
    /**
     * @optional
     *
     * @description
     *
     * Define o tamanho dos componentes de formulário no table:
     * - `small`: aplica a medida small de cada componente (disponível apenas para acessibilidade AA).
     * - `medium`: aplica a medida medium de cada componente.
     *
     * > Caso a acessibilidade AA não esteja configurada, o tamanho `medium` será mantido.
     * Para mais detalhes, consulte a documentação do [po-theme](https://po-ui.io/documentation/po-theme).
     *
     * @default `medium`
     */
    set componentsSize(value: string);
    get componentsSize(): string;
    set maxColumns(value: number);
    get maxColumns(): number;
    constructor(renderer: Renderer2, languageService: PoLanguageService);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    checkChanges(event?: Array<string>, emit?: boolean): void;
    restore(): void;
    changePosition({ option, direction }: {
        option: any;
        direction: any;
    }): void;
    emitColumnFixed(option: any): void;
    private changePositionColumn;
    private verifyToEmitChange;
    private emitChangesToSelectedColumns;
    private allowsChangeVisibleColumns;
    private verifyToEmitVisibleColumns;
    private verifyRestoreValues;
    private allowsChangeSelectedColumns;
    private verifyOnClose;
    private emitVisibleColumns;
    private allowsEmission;
    private isFirstTime;
    private isUpdate;
    private isEqualArrays;
    private disableColumnsOptions;
    private getColumnTitleLabel;
    /** Retorna um Array de column.property das colunas que são visiveis. */
    private getVisibleColumns;
    private isVisibleColumn;
    /** Retorna um Array PoTableColumn a partir das colunas visiveis no gerenciador de colunas. */
    private getVisibleTableColumns;
    private initializeListeners;
    private isDisableColumn;
    private mapTableColumnsToCheckboxOptions;
    private disabledLastColumn;
    private onChangeColumns;
    private updateValues;
    private removeListeners;
    private stringify;
    private removePropertyFixed;
}
