import { DoCheck, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { Group, GroupContext, Row, RowDetailContext, RowOrGroup } from '../../types/public.types';
import { DatatableGroupHeaderDirective } from './body-group-header.directive';
import { DatatableRowDetailDirective } from '../row-detail/row-detail.directive';
import * as i0 from "@angular/core";
export declare class DataTableRowWrapperComponent<TRow extends Row = any> implements DoCheck, OnInit, OnChanges {
    checkBoxInput: ElementRef<HTMLInputElement>;
    innerWidth: number;
    rowDetail?: DatatableRowDetailDirective;
    groupHeader?: DatatableGroupHeaderDirective;
    offsetX: number;
    detailRowHeight: number;
    groupHeaderRowHeight: number;
    row: RowOrGroup<TRow>;
    groupedRows?: Group<TRow>[];
    selected: TRow[];
    disabled?: boolean;
    rowContextmenu: EventEmitter<{
        event: MouseEvent;
        row: RowOrGroup<TRow>;
    }>;
    rowIndex: number;
    selectedGroupRows: import("@angular/core").WritableSignal<TRow[]>;
    expanded: boolean;
    context: RowDetailContext<TRow> | GroupContext<TRow>;
    private rowDiffer;
    private iterableDiffers;
    private selectedRowsDiffer;
    private tableComponent;
    private cd;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngDoCheck(): void;
    onContextmenu($event: MouseEvent): void;
    onCheckboxChange(groupSelected: boolean, group: Group<TRow>): void;
    isGroup(row: RowOrGroup<TRow>): row is Group<TRow>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataTableRowWrapperComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DataTableRowWrapperComponent<any>, "datatable-row-wrapper", never, { "innerWidth": { "alias": "innerWidth"; "required": false; }; "rowDetail": { "alias": "rowDetail"; "required": false; }; "groupHeader": { "alias": "groupHeader"; "required": false; }; "offsetX": { "alias": "offsetX"; "required": false; }; "detailRowHeight": { "alias": "detailRowHeight"; "required": false; }; "groupHeaderRowHeight": { "alias": "groupHeaderRowHeight"; "required": false; }; "row": { "alias": "row"; "required": false; }; "groupedRows": { "alias": "groupedRows"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, { "rowContextmenu": "rowContextmenu"; }, never, ["*"], true, never>;
    static ngAcceptInputType_expanded: unknown;
}
