/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { OnChanges, QueryList, TemplateRef } from '@angular/core';
import { ColumnMenuTemplateDirective } from '../column-menu/column-menu-template.directive';
import { OptionChangesService } from '../common/option-changes.service';
import { FooterTemplateDirective } from '../rendering/footer-template.directive';
import { HeaderTemplateDirective } from '../rendering/header/header-template.directive';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare const isSpanColumn: (column: any) => any;
/**
 * @hidden
 */
export declare const isCheckboxColumn: (column: any) => any;
/**
 * @hidden
 */
export declare const isRowReorderColumn: (column: any) => any;
/**
 * Serves as the base class for column components in the TreeList.
 */
export declare class ColumnBase implements OnChanges {
    parent?: ColumnBase;
    protected optionChanges?: OptionChangesService;
    /**
     * @hidden
     */
    matchesMedia: boolean;
    /**
     * The column index after reordering.
     * The orderIndex` is a read-only property. Setting this field does not affect column order.
     * @default 0
     */
    orderIndex: number;
    /**
     * @hidden
     */
    set leafIndex(value: number);
    /**
     * @hidden
     */
    get leafIndex(): number;
    protected _leafIndex: number;
    /**
     * @hidden
     */
    isColumnGroup: boolean;
    /**
     * @hidden
     */
    isSpanColumn: boolean;
    /**
     * @hidden
     */
    get id(): string;
    /**
     * Indicates whether the column is resizable.
     * @default true
     */
    resizable: boolean;
    /**
     * Indicates whether the column is reorderable.
     * @default true
     */
    reorderable: boolean;
    /**
     * Sets the distance in pixels by which the column width is adjusted during keyboard navigation resizing.
     * Used when resizing columns with `Alt/Option + Left/Right Arrow` keyboard shortcuts.
     *
     * @default 10
     */
    resizeStep: number;
    /**
     * Sets the minimum width (in pixels) for resizing the column using the UI.
     * @default 10
     */
    minResizableWidth: number;
    /**
     * Sets the title of the column.
     */
    title: string;
    /**
     * Sets the width of the column (in pixels).
     */
    set width(value: number);
    get width(): number;
    /**
     * Indicates whether the column is automatically resized during initialization to fit its header and row content.
     */
    autoSize: boolean;
    /**
     * Toggles the locked (frozen) state of the columns ([more information and example](https://www.telerik.com/kendo-angular-ui/components/treelist/columns/locked)).
     * @default false
     */
    set locked(value: boolean);
    get locked(): boolean;
    protected _locked: boolean;
    /**
     * Sets the visibility of the column ([see example](https://www.telerik.com/kendo-angular-ui/components/treelist/columns/hidden#using-the-built-in-options)).
     * @default false
     */
    hidden: boolean;
    /**
     * Sets the condition that must be satisfied for a column to remain visible ([see example](https://www.telerik.com/kendo-angular-ui/components/treelist/styling/responsive#columns)).
     * If you set the `hidden` property, the behavior of `media` is overridden.
     */
    media: string;
    /**
     * Specifies if the column can be locked or unlocked from the column menu or by reordering the columns.
     * @default true
     */
    lockable: boolean;
    /**
     * Specifies if the column menu is shown for the column.
     * @default true
     */
    columnMenu: boolean;
    /**
     * Specifies if the column is included in the column-chooser list.
     * @default true
     */
    includeInChooser: boolean;
    /**
     * Sets the `role` attribute for the table cells (excluding the footer and header) of the column.
     * @default "gridcell"
     *
     * @remarks
     * This property is related to accessibility.
     */
    tableCellsRole: string;
    /**
     * Sets custom styles for the table cells (excluding the footer and header) of the column. Uses the [`NgStyle`](link:site.data.urls.angular['ngstyleapi']) directive. [See example](https://www.telerik.com/kendo-angular-ui/components/treelist/styling/columns).
     */
    style: {
        [key: string]: string;
    };
    /**
     * Sets custom styles for the header cell of the column. Uses the [`NgStyle`](link:site.data.urls.angular['ngstyleapi']) directive. [See example.](https://www.telerik.com/kendo-angular-ui/components/treelist/styling/columns)
     */
    headerStyle: {
        [key: string]: string;
    };
    /**
     * Sets custom styles for the footer cell of the column. Uses the [`NgStyle`](link:site.data.urls.angular['ngstyleapi']) directive. [See example.](https://www.telerik.com/kendo-angular-ui/components/treelist/styling/columns)
     */
    footerStyle: {
        [key: string]: string;
    };
    /**
     * Sets custom CSS classes to the column cells. Uses the [`NgClass`](link:site.data.urls.angular['ngclassapi']) directive. To customize header and footer column cells, use the [`headerClass`](https://www.telerik.com/kendo-angular-ui/components/treelist/api/columncomponent#headerclass) and [`footerClass`](https://www.telerik.com/kendo-angular-ui/components/treelist/api/columncomponent#footerclass) inputs.
     */
    cssClass: string | string[] | Set<string> | {
        [key: string]: any;
    };
    /**
     * Sets custom CSS classes to the column header cell. Uses the [`NgClass`](link:site.data.urls.angular['ngclassapi']) directive. [See example](https://www.telerik.com/kendo-angular-ui/components/treelist/styling/columns).
     */
    headerClass: string | string[] | Set<string> | {
        [key: string]: any;
    };
    /**
     * Sets the custom CSS classes to the column footer cell. Under the hood, to apply the property,
     * the `footerClass` option uses the
     * [`NgClass`](link:site.data.urls.angular['ngclassapi']) directive. [See example](https://www.telerik.com/kendo-angular-ui/components/treelist/styling/columns).
     */
    footerClass: string | string[] | Set<string> | {
        [key: string]: any;
    };
    /**
     * @hidden
     */
    headerTemplates: QueryList<HeaderTemplateDirective>;
    /**
     * @hidden
     */
    footerTemplate: FooterTemplateDirective;
    /**
     * @hidden
     */
    columnMenuTemplates: QueryList<ColumnMenuTemplateDirective>;
    /**
     * @hidden
     */
    resizeStartWidth: number;
    /**
     * @hidden
     */
    get level(): number;
    /**
     * @hidden
     */
    get isLocked(): boolean;
    protected _width: number;
    /**
     * @hidden
     */
    get colspan(): number;
    /**
     * @hidden
     */
    rowspan(totalColumnLevels: number): number;
    /**
     * @hidden
     */
    get headerTemplateRef(): TemplateRef<any>;
    /**
     * @hidden
     */
    get footerTemplateRef(): TemplateRef<any>;
    /**
     * @hidden
     */
    get columnMenuTemplateRef(): TemplateRef<any>;
    /**
     * @hidden
     */
    get displayTitle(): string;
    /**
     * @hidden
     */
    get isVisible(): boolean;
    /**
     * @hidden
     */
    get isEditable(): boolean;
    private _id;
    /**
     * @hidden
     */
    constructor(parent?: ColumnBase, optionChanges?: OptionChangesService);
    ngOnChanges(_changes: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ColumnBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ColumnBase, never, never, { "resizable": { "alias": "resizable"; "required": false; }; "reorderable": { "alias": "reorderable"; "required": false; }; "resizeStep": { "alias": "resizeStep"; "required": false; }; "minResizableWidth": { "alias": "minResizableWidth"; "required": false; }; "title": { "alias": "title"; "required": false; }; "width": { "alias": "width"; "required": false; }; "autoSize": { "alias": "autoSize"; "required": false; }; "locked": { "alias": "locked"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "media": { "alias": "media"; "required": false; }; "lockable": { "alias": "lockable"; "required": false; }; "columnMenu": { "alias": "columnMenu"; "required": false; }; "includeInChooser": { "alias": "includeInChooser"; "required": false; }; "tableCellsRole": { "alias": "tableCellsRole"; "required": false; }; "style": { "alias": "style"; "required": false; }; "headerStyle": { "alias": "headerStyle"; "required": false; }; "footerStyle": { "alias": "footerStyle"; "required": false; }; "cssClass": { "alias": "class"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "footerClass": { "alias": "footerClass"; "required": false; }; }, {}, ["footerTemplate", "headerTemplates", "columnMenuTemplates"], never, true, never>;
}
