import { TablePaginationProps } from './TableFooter/FooterPagination/FooterPagination';
import { TextReplacements } from '../Text/Text';
import { default as React, ReactNode } from 'react';
export type BlurredMessageProps = {
    blurredMessage?: string;
    hideBlurredMessage?: boolean;
    blurredCta?: {
        text: string;
        cta: () => void;
    };
};
export type TableDataProps = {
    options?: TableOptionsProps;
    columns?: Array<TableColumnProps>;
    collections?: Array<TableRowProps>;
    replacements?: TextReplacements;
} & BlurredMessageProps;
export interface TableOptionsPostOrPrefixProps {
    columnAlias: string;
    value: ReactNode | string | ((param: any, row: any) => ReactNode);
    valueParam?: string | number;
    style?: React.CSSProperties;
}
export interface TableOptionsProps {
    postfixForColumn?: Array<TableOptionsPostOrPrefixProps>;
    prefixForColumn?: Array<TableOptionsPostOrPrefixProps>;
}
export interface TableColumnProps {
    alias: string;
    text: ReactNode | string;
    center?: boolean;
    end?: boolean;
    sticky?: boolean;
    seamShadow?: boolean;
    styles?: object;
}
export type TableRowProps = {
    isBlurred?: boolean;
    postfixForColumn?: Array<TableOptionsPostOrPrefixProps> | null;
    prefixForColumn?: Array<TableOptionsPostOrPrefixProps> | null;
    [key: string]: any;
} & {};
export type TableProps = {
    containerClassName?: string;
    className?: string;
    pagination?: TablePaginationProps;
    data?: TableDataProps;
    onNextPage?: (currentOffset: number) => void;
    onPrevPage?: (currentOffset: number) => void;
    onShowMore?: (currentLimit?: number) => void;
    onShowLess?: (currentLimit?: number) => void;
    isLoading?: boolean;
    hideFooter?: boolean;
    replacements?: TextReplacements;
    hasGreyBody?: boolean;
} & BlurredMessageProps;
export type TableContextType = {
    data?: TableDataProps;
    pagination?: TablePaginationProps;
    onNextPage?: (payload: number) => void;
    onPrevPage?: (payload: number) => void;
    onShowMore?: (payload?: number) => void;
    onShowLess?: (payload?: number) => void;
};
export declare const TableProvider: React.Context<TableContextType>;
export declare const Table: (props: TableProps) => import("react/jsx-runtime").JSX.Element;
