import React from 'react';
import FieldModel from '../FieldModel';
import ColumnHeaderCellPropsType from './ColumnHeaderCellPropsType';
import ControlledPropsType from './ControlledPropsType';
import ItemFieldCellLinkWrapperProps from './ItemFieldCellLinkWrapperProps';
import ItemFieldCellRendererPropsType from './ItemFieldCellRendererPropsType';
export interface ControlledContextType<T> extends ControlledPropsType<T> {
    columnHeaderCell: React.ComponentType<ColumnHeaderCellPropsType<T, unknown, unknown>>;
    columnHeaderRow: React.ComponentType<unknown>;
    footerElements: (React.ComponentType<unknown>)[][][];
    headerElements: (React.ComponentType<unknown>)[][][];
    itemFieldCellHyperlink: <V, F>(item: T, field: FieldModel<T, V, F>) => null | string | undefined;
    itemFieldCellLinkWrapper: React.ComponentType<ItemFieldCellLinkWrapperProps<T, unknown, unknown>>;
    itemFieldCellRenderer: React.ComponentType<ItemFieldCellRendererPropsType<T, unknown, unknown>>;
    noContentRow: React.ComponentType<unknown>;
    onVisibleFieldsChange: (newVisibleFields: string[]) => unknown;
    visibleFields: string[];
}
declare const ControlledContext: React.Context<ControlledContextType<unknown>>;
export default ControlledContext;
export declare function useControlledContext<T>(): ControlledContextType<T>;
//# sourceMappingURL=ControlledContext.d.ts.map