/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { GridSortSettings } from '../interfaces/GridSortSettings';
import { SortDescriptor, CompositeFilterDescriptor } from '@progress/kendo-data-query';
import { ColumnDraggableProps } from '../drag/ColumnDraggable';
import { ExtendedColumnProps } from '../interfaces/ExtendedColumnProps';
import { GridColumnProps } from '../interfaces/GridColumnProps';
import { GridHeaderCellProps } from '../interfaces/GridHeaderCellProps';
import { SVGIcon } from '@progress/kendo-vue-common';
import { GridCellsSettings } from '../interfaces/GridCellsSettings';
import { GridFilterOperators } from '../interfaces/GridFilterOperators';
import { PopupAnimation } from '@progress/kendo-vue-popup';
import { PropType } from 'vue';
import { GridCellRenderModel } from '../interfaces/GridCellRenderModel';
/**
 * @hidden
 */
export interface HeaderRowProps extends ColumnDraggableProps {
    grid: any;
    sortable?: GridSortSettings;
    groupable?: any;
    reorderable?: boolean;
    headerSelectionValue?: boolean | any[];
    onSortChange?: (descriptors: SortDescriptor[], e: any) => void;
    sort?: any;
    filter?: CompositeFilterDescriptor;
    filterOperators: GridFilterOperators;
    filterable?: boolean | undefined;
    filterChange?: any;
    filterRow?: any;
    columns: ExtendedColumnProps[];
    columnResize?: any;
    columnsMap: number[][];
    onSelectionchange?: any;
    cellRender?: ((h: any, defaultRendering: any | null, props: GridHeaderCellProps) => any) | string | null;
    cells?: GridCellsSettings;
    columnMenu?: any;
    columnMenuAnimate?: boolean | PopupAnimation;
    columnMenuIcon?: SVGIcon;
    onFilterChange?: Function;
    isRtl?: boolean;
    isColCountDefined?: boolean;
    columnsInitial?: ExtendedColumnProps[];
    cellsToRender?: GridCellRenderModel[];
    columnVirtualization?: boolean;
}
/**
 * @hidden
 */
declare const HeaderRow: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    grid: PropType<any>;
    cellRender: PropType<string | ((h: any, defaultRendering: any | null, props: GridHeaderCellProps) => any)>;
    cells: PropType<GridCellsSettings>;
    groupable: PropType<any>;
    reorderable: PropType<boolean>;
    sortable: PropType<GridSortSettings>;
    sort: {
        type: PropType<any>;
    };
    filter: PropType<CompositeFilterDescriptor>;
    filterable: PropType<boolean>;
    filterOperators: PropType<GridFilterOperators>;
    filterChange: PropType<any>;
    filterRow: PropType<any>;
    columns: PropType<ExtendedColumnProps[]>;
    cellsToRender: PropType<GridCellRenderModel[]>;
    columnVirtualization: PropType<boolean>;
    columnsMap: PropType<number[][]>;
    columnResize: PropType<any>;
    columnMenu: PropType<any>;
    columnMenuAnimate: {
        type: PropType<boolean | PopupAnimation>;
        default: () => true;
    };
    columnMenuIcon: PropType<SVGIcon>;
    isRtl: PropType<boolean>;
    isColCountDefined: PropType<boolean>;
    headerSelectionValue: PropType<boolean | any[]>;
    columnsInitial: PropType<ExtendedColumnProps[]>;
    onSortChange: PropType<(descriptors: SortDescriptor[], e: any) => void>;
    onFilterChange: PropType<Function>;
    onSelectionchange: PropType<any>;
    onPressHandler: PropType<(draggableEvent: any, element: HTMLElement) => void>;
    onDragHandler: PropType<(draggableEvent: any, element: HTMLElement) => void>;
    onReleaseHandler: PropType<(draggableEvent: any) => void>;
}>, {}, {
    columnMenuOpened: {};
}, {
    element(): any;
    theadClasses(): any;
}, {
    pressHandler(event: any, element: HTMLElement): void;
    dragHandler(event: any, element: HTMLElement): void;
    releaseHandler(event: any): void;
    selectionChangeHandler(options: any): void;
    cellClick(e: any, column: GridColumnProps): void;
    sortChangeHandler(newDescriptor: SortDescriptor[], e: any): void;
    filterChangeHandler(newDescriptor: CompositeFilterDescriptor | null, e: any): void;
    cellClass(field: string | undefined, headerClassName: string | undefined, locked?: boolean): string;
    cellKeyDown(event: any, column: GridColumnProps): void;
    getTemplate(template: any): any;
    columnMenuClose(): void;
    triggerContextMenu(e: MouseEvent, column: GridColumnProps): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    grid: PropType<any>;
    cellRender: PropType<string | ((h: any, defaultRendering: any | null, props: GridHeaderCellProps) => any)>;
    cells: PropType<GridCellsSettings>;
    groupable: PropType<any>;
    reorderable: PropType<boolean>;
    sortable: PropType<GridSortSettings>;
    sort: {
        type: PropType<any>;
    };
    filter: PropType<CompositeFilterDescriptor>;
    filterable: PropType<boolean>;
    filterOperators: PropType<GridFilterOperators>;
    filterChange: PropType<any>;
    filterRow: PropType<any>;
    columns: PropType<ExtendedColumnProps[]>;
    cellsToRender: PropType<GridCellRenderModel[]>;
    columnVirtualization: PropType<boolean>;
    columnsMap: PropType<number[][]>;
    columnResize: PropType<any>;
    columnMenu: PropType<any>;
    columnMenuAnimate: {
        type: PropType<boolean | PopupAnimation>;
        default: () => true;
    };
    columnMenuIcon: PropType<SVGIcon>;
    isRtl: PropType<boolean>;
    isColCountDefined: PropType<boolean>;
    headerSelectionValue: PropType<boolean | any[]>;
    columnsInitial: PropType<ExtendedColumnProps[]>;
    onSortChange: PropType<(descriptors: SortDescriptor[], e: any) => void>;
    onFilterChange: PropType<Function>;
    onSelectionchange: PropType<any>;
    onPressHandler: PropType<(draggableEvent: any, element: HTMLElement) => void>;
    onDragHandler: PropType<(draggableEvent: any, element: HTMLElement) => void>;
    onReleaseHandler: PropType<(draggableEvent: any) => void>;
}>> & Readonly<{}>, {
    columnMenuAnimate: true;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { HeaderRow };
