import { OnDestroy, OnInit } from '@angular/core';
import { CheckboxListData, CheckboxListState } from '@seniorsistemas/angular-components/checkbox-list';
import { Table, TableService } from 'primeng/table';
import * as i0 from "@angular/core";
/**
 * @description Componente de checkbox de cabeçalho para tabelas PrimeNG.
 * Integra-se automaticamente ao `TableService` para sincronizar o estado
 * de seleção total/parcial com as linhas da tabela.
 *
 * @example
 * ```html
 * <th>
 *   <s-table-header-checkbox [rowProps]="['id', 'name']" />
 * </th>
 * ```
 *
 * @category Data
 */
export declare class TableHeaderCheckboxComponent implements OnInit, OnDestroy {
    readonly table: Table;
    readonly tableService: TableService;
    static nextId: number;
    /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
    id: string;
    /** @description Desabilita o checkbox de cabeçalho. @default false */
    disabled: boolean;
    /** @description Lista de propriedades dos itens da linha usadas para identificação. */
    rowProps?: string[];
    /** @description Quando `true`, usa o objeto completo da linha em vez de propriedades específicas. */
    useAllObject?: boolean;
    checkboxItems: CheckboxListData;
    checked: boolean;
    hasFocus: boolean;
    checkboxState: CheckboxListState;
    private _ngUnsubscribe;
    constructor();
    ngOnInit(): void;
    ngOnDestroy(): void;
    onFocus(): void;
    onBlur(): void;
    isDisabled(): boolean;
    onClick(): void;
    updateCheckedState(): any;
    onToggleCheckbox(checked: boolean): void;
    isAllFilteredValuesChecked(): boolean;
    isAllValuesChecked(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableHeaderCheckboxComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableHeaderCheckboxComponent, "s-table-header-checkbox", never, { "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rowProps": { "alias": "rowProps"; "required": false; }; "useAllObject": { "alias": "useAllObject"; "required": false; }; }, {}, never, never, false, never>;
}
