import { SelectionModel } from '../models/table/selection-model.model';
import * as i0 from "@angular/core";
export declare class TableSelectionService {
    /** Verifica se um item está selecionado usando múltiplas colunas como chave composta. */
    isSelecionadoPorItem(item: any, idColumnNames?: string[]): boolean;
    private _selecaoGeral;
    selecaoMap: Map<string | number, boolean>;
    get selecaoGeral(): boolean;
    set selecaoGeral(value: boolean);
    constructor();
    /** Retorna os registros selecionados dentro de um array do tipo SelectionModel[] ou um array tipo any[]
     * @param returnObj Informa se o retorno será uma lista de objetos (SelectionModel[]) ou um array de arrays */
    getOnlySelecionados(returnObj?: boolean): SelectionModel[] | any[];
    quantidadeSelecionados(): number;
    /** Inicializa a seleção usando uma coluna como chave de identificação.
     * @param list lista de objetos
     * @param columns nome da coluna que será usada de identificação
    */
    initSelecao(list: any[], columns: string): Map<string | number, boolean>;
    /** Inicializa a seleção usando múltiplas colunas como chave composta.
     * @param list lista de objetos
     * @param columns array de nomes de colunas (pode usar paths como 'pessoa.id')
    */
    initSelecao(list: any[], columns: string[]): Map<string | number, boolean>;
    /** Inverte a seleção com base em um valor de identificação dos itens rastreados na seleção. */
    inverterSelecao(id?: string | number, item?: any, columns?: string[]): void;
    /** Inverte a seleção com base em um item completo, usando colunas para gerar a chave composta. */
    inverterSelecao(id?: null, item?: any, columns?: string[]): void;
    /** Define seleção total usando uma coluna de identificação. */
    definirSelecaoTotal(list?: any[], selecao?: boolean, columns?: string): void;
    /** Define seleção total usando colunas compostas como chave. */
    definirSelecaoTotal(list?: any[], selecao?: boolean, columns?: string[]): void;
    /**
     * Gera uma chave estável a partir de um objeto e de uma lista de colunas.
     * A chave é criada concatenando os valores das colunas com um separador estável.
    */
    private makeCompositeKeyFromItem;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableSelectionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TableSelectionService>;
}
