import * as React from "react";
declare type Align = "left" | "center" | "right";
export declare type ColumnKey
= Exclude | string | ColumnTypes.ACTION_BTM;
declare type ColumnCommonAttributes = {
align?: Align;
};
export declare type ActionBtnColumn = {
type: ColumnTypes.ACTION_BTM;
options: {
name: string;
cta(value: T): void;
}[];
component?: (value: T) => React.ReactElement;
};
export declare enum ColumnTypes {
TEXT = "text",
AMOUNT = "amount",
TIME = "time",
USER = "user",
DATE = "date",
STATUS = "status",
ASSET = "asset",
ACTION_BTM = "actionBtn"
}
export declare type Column = ({
type: ColumnTypes.TEXT;
dataKey?: string;
} & ColumnCommonAttributes) | ({
type: ColumnTypes.AMOUNT;
dataKey?: string;
} & ColumnCommonAttributes) | ({
type: ColumnTypes.TIME;
dataKey?: string;
} & ColumnCommonAttributes) | ({
type: ColumnTypes.USER;
dataKey?: string;
imgDataKey?: string;
emailDataKey?: string;
} & ColumnCommonAttributes) | ({
type: ColumnTypes.DATE;
dataKey?: string;
} & ColumnCommonAttributes) | ({
type: ColumnTypes.STATUS;
dataKey?: string;
} & ColumnCommonAttributes) | ({
type: ColumnTypes.ASSET;
dataKey?: string;
} & ColumnCommonAttributes) | (ActionBtnColumn & ColumnCommonAttributes);
export interface DataGridProps {
columns: {
[Property in Exclude | string | ColumnTypes.ACTION_BTM]: Column;
};
data: P[];
onArrowClick?: (tx: P) => void;
notFoundLabel?: string;
}
export declare const getAlignTWValue: (align: Align) => string;
export declare type BaseData = Record | string | ColumnTypes.ACTION_BTM, ActionBtnColumn[keyof ActionBtnColumn] | string | null | Record>;
declare const DataGrid: >({ data, columns, onArrowClick, notFoundLabel, }: DataGridProps
) => React.ReactElement;
export default DataGrid;