import { NTable } from '../interface';
import { InjectionKey } from 'vue';
export interface IBodyContextProps<RecordType = NTable.TDefaultRecord> {
    rowClassName?: string | NTable.NRow.TClassName<RecordType>;
    expandedRowClassName?: NTable.NRow.TClassName<RecordType>;
    columns: NTable.NColumn.TColumns<RecordType>;
    flattenColumns: readonly NTable.NColumn.IColumn<RecordType>[];
    tableLayout: NTable.TLayout;
    indentSize: number;
    expandableType: NTable.NExpand.TExpandableType;
    expandRowByClick?: boolean;
    expandedRowRender?: NTable.NExpand.TExpandedRowRender<RecordType>;
    expandIconColumnIndex?: number;
    expandIcon: NTable.NExpand.TRenderExpandIcon<RecordType>;
    onTriggerExpand: NTable.TTriggerEventHandler<RecordType>;
}
export declare const BodyContextKey: InjectionKey<IBodyContextProps>;
export declare const useProvideBody: (props: IBodyContextProps) => void;
export declare const useInjectBody: () => IBodyContextProps<any>;
