/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { default as PropTypes } from 'prop-types';
import { CommonDragLogic, ExtendedColumnProps, TableKeyboardNavigationContextType } from '@progress/kendo-react-data-tools';
import { TreeListProps } from '@progress/kendo-react-treelist';
import { GanttCellProps } from '../interfaces/GanttCellProps';
import { GanttHeaderCellProps } from '../interfaces/GanttHeaderCellProps';
import { GanttFilterCellProps } from '../interfaces/GanttFilterCellProps';
import * as React from 'react';
/**
 * @hidden
 */
export interface GanttTreeListProps extends TreeListProps {
    extendedColumns: ExtendedColumnProps<GanttCellProps, GanttHeaderCellProps, GanttFilterCellProps>[];
    columnsMap: number[][];
    afterContent: any;
    dataItemKey: string;
    navigatable?: boolean;
    idPrefix: string;
    treelistId: string;
}
/**
 * @hidden
 */
export declare class GanttTreeList extends React.Component<GanttTreeListProps, {}> {
    /**
     * @hidden
     */
    static propTypes: {
        data: PropTypes.Requireable<any[]>;
        resizable: PropTypes.Requireable<boolean>;
        reorderable: PropTypes.Requireable<boolean>;
        sortable: PropTypes.Requireable<NonNullable<boolean | PropTypes.InferProps<{
            mode: PropTypes.Requireable<string>;
            allowUnsort: PropTypes.Requireable<boolean>;
        }> | null | undefined>>;
        onSortChange: PropTypes.Requireable<(...args: any[]) => any>;
        sort: PropTypes.Requireable<any[]>;
        columns: PropTypes.Requireable<(object | null | undefined)[]>;
        columnVirtualization: PropTypes.Requireable<boolean>;
        filter: PropTypes.Requireable<any[]>;
        onFilterChange: PropTypes.Requireable<(...args: any[]) => any>;
        filterRow: PropTypes.Requireable<any>;
        toolbar: PropTypes.Requireable<any>;
        noRecords: PropTypes.Requireable<any>;
        onExpandChange: PropTypes.Requireable<(...args: any[]) => any>;
        expandField: PropTypes.Requireable<string>;
        subItemsField: PropTypes.Requireable<string>;
        selectedField: PropTypes.Requireable<string>;
        onSelectionChange: PropTypes.Requireable<(...args: any[]) => any>;
        onHeaderSelectionChange: PropTypes.Requireable<(...args: any[]) => any>;
        onRowClick: PropTypes.Requireable<(...args: any[]) => any>;
        onItemChange: PropTypes.Requireable<(...args: any[]) => any>;
        editField: PropTypes.Requireable<string>;
        scrollable: PropTypes.Requireable<string>;
        rowHeight: PropTypes.Requireable<number>;
        style: PropTypes.Requireable<object>;
        tableProps: PropTypes.Requireable<object>;
        pager: PropTypes.Requireable<any>;
        skip: PropTypes.Requireable<number>;
        take: PropTypes.Requireable<number>;
        onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
        onDataStateChange: PropTypes.Requireable<(...args: any[]) => any>;
        onColumnResize: PropTypes.Requireable<(...args: any[]) => any>;
        onColumnReorder: PropTypes.Requireable<(...args: any[]) => any>;
        extendedColumns: PropTypes.Requireable<(object | null | undefined)[]>;
        columnsMap: PropTypes.Requireable<(any[] | null | undefined)[]>;
        dataItemKey: PropTypes.Validator<string>;
        afterContent: PropTypes.Requireable<any>;
        navigatable: PropTypes.Requireable<boolean>;
        idPrefix: PropTypes.Requireable<string>;
        treelistId: PropTypes.Requireable<string>;
    };
    /** @hidden */
    static contextType: React.Context<TableKeyboardNavigationContextType | undefined>;
    state: TableKeyboardNavigationContextType;
    tableElement: HTMLTableElement | null;
    tbodyElement: HTMLTableSectionElement | null;
    private wrapperScrollLeft;
    private wrapperScrollTop;
    private updateOnScroll;
    private tbodyOffsetTop;
    private prevData;
    private flattedData;
    private columnResize;
    private element;
    protected dragLogic: CommonDragLogic<GanttCellProps, GanttHeaderCellProps, GanttFilterCellProps>;
    private get document();
    private contextStateRef;
    private navigationStateRef;
    constructor(props: GanttTreeListProps);
    scrollIntoView: (options: {
        rowIndex?: number;
    }) => void;
    /**
     * @hidden
     */
    componentDidMount(): void;
    /**
     * @hidden
     */
    getSnapshotBeforeUpdate(): null;
    /**
     * @hidden
     */
    componentDidUpdate(prevProps: TreeListProps): void;
    /**
     * @hidden
     */
    componentWillUnmount(): void;
    /**
     * @hidden
     */
    render(): React.JSX.Element;
    private getColumns;
    private get flatData();
    private onKeyDown;
    private onFocus;
    private onRowDrag;
    private onRowDrop;
    private onColumnReorder;
    private onColumnResize;
    private onScroll;
    private calculateSizes;
    private onItemChange;
    private onSelectionChange;
    private onHeaderSelectionChange;
    private selectionRelease;
    private onSortChange;
    private onFilterChange;
    private onColumnMenuFilterChange;
    private onExpandChange;
    private onRowClick;
    private rowDoubleClick;
    private rowContextMenu;
    private onPageChange;
    private onDataStateChange;
    private getDataState;
    private getEventArguments;
    private getLeafDataItems;
}
