import { ColumnDefTemplate, HeaderContext } from '@tanstack/react-table';
import { KindExpenseResult } from '~/components/CropChronogramsTable/components/DataRow/types';
import { Column as ColumnActive } from '~/components/CropChronogramsTable/components/DrawerFilterColumns/types';
import { CropChronogramsIndicator } from '~/services/api/cropChronograms/fetchChronogramIndicatorsById/type';
import { CropChronogramInfo, Type as TableType } from '~/services/api/cropChronograms/fetchChronogramInfoById/type';
import { ChronogramColumnData } from '~/services/api/cropChronograms/fetchDataByIdAndColumnId/type';
import { getTableDataFormated } from './utils';
export interface Column<T> {
    accessor: keyof T;
    complement?: string;
    description: string;
    hasSign?: boolean;
    name: string;
}
export interface GroupColumn {
    description?: string;
    name: string;
    slug: string;
    tooltipDescription?: string;
}
interface CellCommonValueFormat {
    formated: string;
    original: number;
}
interface CellCommonValue {
    value: CellCommonValueFormat;
    valueByUnit?: CellCommonValueFormat;
}
export interface CellValues extends CellCommonValue {
    extra?: CellCommonValue;
    isDifferenceCell?: boolean;
    valuePercent?: string;
    valueSign?: KindExpenseResult;
}
export interface ColumnValues {
    carriedOut?: CellValues;
    difference?: CellValues;
    perfarmDifference?: CellValues;
    planned?: CellValues;
    slug?: string;
    updatedResult?: CellValues;
}
declare type GetDefaultDataReturn = ReturnType<typeof getTableDataFormated>;
export declare type DefaultData = GetDefaultDataReturn[number];
declare type OnDidMount = () => void;
export interface Props {
    className?: string;
    columnsListControl?: ColumnActive[];
    columnsMaxToShow?: number;
    dataColumns: ChronogramColumnData[];
    dataIndicators: CropChronogramsIndicator[];
    dataInfo?: CropChronogramInfo;
    onDidMount?: OnDidMount;
    tableId?: string;
}
export interface CropChronogramsIndicatorFilled extends CropChronogramsIndicator {
    [x: string]: unknown;
    aggregates?: CropChronogramsIndicatorFilled[];
    rowLevel: number;
    total?: ColumnValues;
}
export interface CropChronogramsIndicatorFilledModified extends CropChronogramsIndicatorFilled {
    aggregates?: CropChronogramsIndicatorFilledModified[];
    rowClassName: string;
    rowId: string;
}
export type { TableType };
export declare type ColumnTemplate = ColumnDefTemplate<HeaderContext<DefaultData, unknown>>;
