import type { InjectionKey } from 'vue';
import type { ColumnType, ColumnsType, DefaultRecordType, ExpandableType, ExpandedRowRender, RenderExpandIcon, RowClassName, TableLayout, TriggerEventHandler } from '../interface';
export interface BodyContextProps<RecordType = DefaultRecordType> {
    rowClassName: string | RowClassName<RecordType>;
    expandedRowClassName: RowClassName<RecordType>;
    columns: ColumnsType<RecordType>;
    flattenColumns: ReadonlyArray<ColumnType<RecordType>>;
    tableLayout: TableLayout;
    indentSize: number;
    expandableType: ExpandableType;
    expandRowByClick: boolean;
    expandedRowRender: ExpandedRowRender<RecordType>;
    expandIcon: RenderExpandIcon<RecordType>;
    onTriggerExpand: TriggerEventHandler<RecordType>;
    expandIconColumnIndex: number;
}
export declare const BodyContextKey: InjectionKey<BodyContextProps>;
export declare function useProvideBody(props: BodyContextProps): void;
export declare function useInjectBody(): BodyContextProps<any>;
