import { DoCheck, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { Group, GroupContext, 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 = 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>[];
    disableCheck: (row: RowOrGroup<TRow>) => boolean;
    selected: TRow[];
    rowContextmenu: EventEmitter<{
        event: MouseEvent;
        row: RowOrGroup<TRow>;
    }>;
    rowIndex?: number;
    selectedGroupRows: import("@angular/core").WritableSignal<TRow[]>;
    expanded: boolean;
    groupContext?: GroupContext<TRow>;
    rowContext?: RowDetailContext<TRow>;
    disable$: BehaviorSubject<boolean>;
    private rowDiffer;
    private iterableDiffers;
    private selectedRowsDiffer;
    private tableComponent;
    private cd;
    protected group: import("@angular/core").Signal<Group<TRow>>;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngDoCheck(): void;
    onContextmenu($event: MouseEvent): void;
    onCheckboxChange(groupSelected: boolean): 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; }; "disableCheck": { "alias": "disableCheck"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, { "rowContextmenu": "rowContextmenu"; }, never, ["*"], true, never>;
    static ngAcceptInputType_expanded: unknown;
}
