import React, { FunctionComponent } from 'react';
import { Component } from '../../../../shared-logic/src/Component/types';
import { QueryAttributes } from '../../../../shared-logic/src/QueryAttributes/types';
import { TableContent, TableFields, TableRepresentation } from '../../../../shared-logic/src/DataTable/types';
import { DataSet } from '../../../../shared-logic/src/DataSet/types';
import { VizzlyComponents } from '../../types';
import { Component as ComponentType } from '../../../../shared-logic/src/Component/types';
import { AdditionalFilter } from '../../../../shared-logic/src/AdditionalFilter/types';
import * as FieldLogic from '../../../../shared-logic/src/Field';
import { TableCellRender, TableOnViewClick } from '../../../../shared-logic/src/Callbacks/cell.funcs';
import { ConditionalFormattingBoundary } from './buildConditionalFormattingBoundaries';
import { TextOverride } from '../../../../shared-logic/src/Translations/types';
import { FrozenColumnMeta } from './computeFrozenColumns';
export declare type DataTableRowProps = {
    protectedFields?: Component.ProtectedFields;
    dataSet: DataSet;
    conditionalFormattingRules: ConditionalFormattingBoundary[];
    dimension: QueryAttributes.Dimension[];
    drilldown: ComponentType.TableDrilldown[];
    rowIndex: number;
    row: TableContent[];
    tableRepresentation: TableRepresentation;
    sizing: {
        [keyId: string]: {
            width?: number | string | undefined;
        };
    };
    defaultColumnWidth: number | string;
    handleOnChange: TableOnViewClick;
    handleTableCellRender: TableCellRender;
    cellStyles: React.CSSProperties;
    setShowMore: React.Dispatch<React.SetStateAction<string | null>>;
    queriesAreChanging?: boolean;
    visualFormatColumns?: QueryAttributes.Measure[];
    rowSpan: (number | undefined)[];
    frozenColumnMeta?: FrozenColumnMeta[];
};
export declare const DataTableRow: FunctionComponent<DataTableRowProps & {
    drilldown?: ComponentType.TableDrilldown[];
    drilldownInputProps?: DrilldownRowInputProps;
}>;
export declare type DrilldownRowInputProps = {
    runQueriesCallback: VizzlyComponents.runQueriesCallbackInternal;
    component: ComponentType<ComponentType.DataTableAttributes>;
    globalFilters: AdditionalFilter[];
};
export declare function buildMappedValues(tableRepresentation: TableRepresentation, dimension: QueryAttributes.Dimension[], rowIndex: number): {
    [x: string]: any;
}[];
export declare function getXDimensions(dimension: QueryAttributes.Dimension[]): QueryAttributes.Dimension[];
export declare function buildUpdatedClickSettings(drilldown: Component.TableDrilldown, functionsToCheck: FieldLogic.DecodingFunctionsToCheck, selectedRow: SelectedRow, subsetValue: string | number, clickedValue: string | number, key: string, dimension: QueryAttributes.Dimension[]): {
    value: {
        fieldId: string;
        value: React.ReactText;
        function: string;
        aggregate: string;
        datum: string;
    };
    grouping: Component.ReturnedField[];
};
export declare function buildParentAdjustedRows(parentFields: TableFields[], tableRepresentation: TableRepresentation, rowIndex: number, row: TableContent[], xDimension: QueryAttributes.Dimension[], textOverride: TextOverride): TableContent[];
export declare type SelectedRow = Array<{
    [id: string]: string;
}>;
export declare function buildDrilldownAttributes(attributes: Component.DataTableAttributes, subsetDimension: QueryAttributes.Dimension, dimension: QueryAttributes.Dimension[], selectedRow: SelectedRow, offset: number): Component.DataTableAttributes & {
    xMeasure?: QueryAttributes.Measure | null | undefined;
    yMeasure?: QueryAttributes.Measure;
};
