import { AFM, Execution } from "@gooddata/typings";
import * as React from "react";
import { IDrillableItem } from "../../../interfaces/DrillEvents";
import { OnFiredDrillEvent } from "../../../interfaces/Events";
import { IHeaderPredicate } from "../../../interfaces/HeaderPredicate";
import { ITableTransformationConfig, OnSortChangeWithItem } from "../../../interfaces/Table";
import { IIndexedTotalItem } from "../../../interfaces/Totals";
import { ITableProps } from "./Table";
export interface ITableTransformationProps {
    afterRender?: (...params: any[]) => any;
    totals?: IIndexedTotalItem[];
    totalsEditAllowed?: boolean;
    onTotalsEdit?: (indexedTotals: IIndexedTotalItem[]) => void;
    config?: ITableTransformationConfig;
    drillableItems?: Array<IDrillableItem | IHeaderPredicate>;
    executionRequest: AFM.IExecution;
    executionResponse: Execution.IExecutionResponse;
    executionResult: Execution.IExecutionResult;
    height?: number;
    maxHeight?: number;
    onFiredDrillEvent?: OnFiredDrillEvent;
    onSortChange?: OnSortChangeWithItem;
    onDataTooLarge?: (...params: any[]) => any;
    tableRenderer?: (props: ITableProps) => JSX.Element;
    width?: number;
    lastAddedTotalType?: AFM.TotalType;
    onLastAddedTotalRowHighlightPeriodEnd?: () => void;
}
export declare class TableTransformation extends React.Component<ITableTransformationProps> {
    static defaultProps: Partial<ITableTransformationProps>;
    render(): JSX.Element;
}
