import { PerfarmToast } from '~/commons/types/toast';
import { Expense } from '~/services/api/cashFlow/fetchExpenses/type';
import { CostCenter, KindExpense } from '~/services/api/cashFlow/fetchKindExpenses/type';
import { DateFilterTypeLabel, DateFilterTypeValue, StatusFilterTypeLabel, StatusFilterTypeValue } from './components/Filter/types';
export interface Column<T> {
    accessor: keyof T;
    complement?: string;
    description: string;
    hasSign?: boolean;
    name: string;
}
export interface CellValue {
    absolute: number;
    percentage?: number;
    showNA?: boolean;
}
export declare type CellData = Record<string, CellValue> & (IndicatorCostCenter | DefaultData);
export interface IndicatorCostCenter extends CostCenter, Expense {
    costCenters: IndicatorCostCenter[];
    type: 'expense' | 'cost_center' | 'kind_expense';
}
export interface DefaultData extends KindExpense, Expense {
    costCenters: IndicatorCostCenter[];
}
export declare type ColumnVisibility = Partial<Record<Extract<keyof typeof ColumnName, 'carriedOut' | 'pending' | 'perfarmPlanned' | 'planned'> | 'difference' | 'perfarmDifference', boolean>>;
export interface FilterData<Label, Value> {
    label: Label;
    value: Value;
}
export interface FilterSelected {
    date: FilterData<DateFilterTypeLabel, DateFilterTypeValue>;
    status: FilterData<StatusFilterTypeLabel, StatusFilterTypeValue>;
    tags: FilterData<string, number>[];
}
export declare enum ColumnName {
    carriedOut = "carriedOut",
    difference = "difference",
    pending = "pending",
    perfarmDifference = "perfarmDifference",
    perfarmPlanned = "perfarmPlanned",
    planned = "planned",
    updatedResult = "updatedResult"
}
export interface OwnProps {
    businessUnitId: string;
    isAggregated?: boolean;
    tableHeight?: string;
    tableId?: string;
    tableOuterHeight?: string;
}
export declare type Props = OwnProps & PerfarmToast;
