/*!
 * Copyright 2019 VMware, Inc.
 * SPDX-License-Identifier: BSD-2-Clause
 */
import { GridSelectionType } from './../../../datagrid/datagrid.component';
import { DebugElement, Type } from '@angular/core';
import { ClrDatagrid } from '@clr/angular';
import { DatagridFilter } from '../../../datagrid/filters/datagrid-filter';
import { ShowClippedTextDirective } from '../../../lib/directives/show-clipped-text.directive';
import { WidgetObject } from '../widget-object';
/**
 * Widget Object for a Clarity DataGrid
 */
export declare class ClrDatagridWidgetObject extends WidgetObject<ClrDatagrid> {
    static tagName: string;
    /**
     * Retrieves the text content of a cell
     * @param row 0-based index of row
     * @param column 0-based index of column
     */
    getCellText(row: number, column: number): string;
    /**
     * Gives the text content of all the cells in a row.
     * @param rowIndex 0-based index of row
     */
    getRowValues(rowIndex: number): string[];
    /**
     * Gives the linked text in the given cell represented by the {@param rowIndex} and {@param columnIndex} if present.
     */
    getCellLink(rowIndex: number, columnIndex: number): string[];
    /**
     * Retrieves if the cell will clip text
     * @param column 0-based index of column
     */
    columnClippedTextDirective(column: number): ShowClippedTextDirective;
    /**
     * Returns the number of visible columns
     */
    get columnCount(): number;
    /**
     * Returns the text for a header
     * @param columnIndex 0-based index of header to retrieve
     */
    getColumnHeader(columnIndex: number): string;
    /**
     * Returns an array of the texts for columns, in DOM order
     */
    get columnHeaders(): string[];
    /**
     * Returns an array of the texts for columns that are hidden.
     */
    get hiddenColumnHeaders(): string[];
    /**
     * Returns the number of rows currently displayed
     */
    get rowCount(): number;
    /**
     * Says if this datagrid is loading.
     */
    get loading(): boolean;
    /**
     * Gives the placeholder present on the datagrid.
     */
    get placeholder(): string;
    /**
     * Returns whether or not the column with the given index is displayed by the CSS.
     */
    isColumnDisplayed(index: number): boolean;
    /**
     * Returns the classes of the column with the given index.
     */
    getColumnClasses(index: number): string[];
    get gridCssClass(): string[];
    /**
     * Returns the CSS class names of the given Clarity datarow.
     */
    getRowsCssClass(index: number): string[];
    /**
     * Returns the native element contents within all the detail pane open.
     */
    getAllDetailRowContents(): string[];
    /**
     * Returns the native element contents within all the detail pane open.
     */
    getAllDetailPaneContents(): string[];
    /**
     * Returns the header of the detail pane.
     */
    getDetailPaneHeader(): string;
    /**
     * Clicks the given detail row button.
     */
    clickDetailRowButton(row: number): void;
    /**
     * Clicks the given detail pane button.
     */
    clickDetailPaneButton(row: number): void;
    /**
     * Sorts the column at the given index.
     */
    sortColumn(index: number): void;
    /**
     * Returns the selection type of the grid.
     */
    getSelectionType(): GridSelectionType;
    /**
     * Clicks the selection icon on the given row.
     */
    selectRow(row: number): void;
    /**
     * Gives the pagination description text.
     */
    getPaginationDescription(): string;
    /**
     * Gives the text next to the pagination selector.
     * Gives empty string if the size dropdown is not in the page.
     */
    getPaginationSizeSelectorText(): string;
    /**
     * Clicks the next page button.
     */
    nextPage(): void;
    /**
     * Gives a list of the labels of the displayed action buttons at the top of the grid.
     */
    getTopPositionedButtons(): string[];
    /**
     * Gives the class of the cell that holds the row buttons.
     */
    getRowButtonContainerClass(rowIndex: number): string[];
    /**
     * Gives the text of the button with the given buttonClass on the top of the datagrid.
     */
    getTopButtonText(buttonClass: string): string;
    /**
     * Gives the text of the button with the given buttonClass at a row of the datagrid.
     * @param row 0-based index of row
     */
    getRowButtonText(buttonClass: string, row: number): string;
    /**
     * Says if the button on the top of the grid with the given buttonClass is enabled.
     */
    isTopButtonEnabled(buttonClass: string): boolean;
    /**
     * Says if the button at a row in the datagrid with the given buttonClass is enabled.
     * @param row 0-based index of row
     */
    isRowButtonEnabled(buttonClass: string, row: number): boolean;
    /**
     * Presses the button with the given buttonClass on the top of the datagrid.
     */
    pressTopButton(buttonClass: string): void;
    /**
     * Presses the button with the given buttonClass on a row of the datagrid.
     * @param row 0-based index of row
     */
    pressRowButton(buttonClass: string, row: number): void;
    /**
     * Gives the height CSS of this clr-datagrid.
     */
    get gridHeight(): string;
    /**
     * Gives the height of the grids container.
     */
    get gridContainerClasses(): string[];
    /**
     * Can be used by subclasses to create methods that assert about HTML in custom rendered columns. Note that
     * subclasses should not return the DebugElement, they should return a string from a section of the HTML.
     *
     * @param row 0-based index of row
     * @param column 0-based index of column
     *
     * Because the custom renderer widget object requires getting the {@link DebugElement} of a cell,
     * but doesn't directly extend {@link ClrDatagridWidgetObject}, this method needs to be public.
     * This will be fixed in {@link https://jira.eng.vmware.com/browse/VDUCC-127}.
     */
    getCell(row: number, column: number): DebugElement;
    private get rows();
    private get columns();
    private get detailRowButtons();
    private get detailPaneButtons();
    private openFilter;
    /**
     * Used by the {@link createDatagridFilterTestHelper} to query for a filter component. Opens filter of first
     * column and returns the filter component.
     * @param ctor The constructor of a grid filter component
     */
    getFilter<V, C>(ctor: Type<DatagridFilter<V, C>>): DatagridFilter<V, C>;
}
