import React, { type ReactNode } from "react";
import type { DataTable2ColumnEditFeatures, TableColumn } from "./types";
import type { TableAction } from "./types/tableActions";
type DataTable2Props = {
/**
* ページネーションの現在のページ
*/
currentPage: number;
/**
* ページネーションの1ページあたりの表示件数
*/
pageSize: number;
/**
* ページネーションの1ページあたりの表示件数の選択肢
*/
pageSizeOptions: number[];
/**
* ページネーションの全件数
*/
totalCount: number;
columns: TableColumn[];
/**
* ページネーションのページ変更時のコールバック
* @param page 変更後のページ
*/
onPageChange: (page: number) => void;
/**
* ページネーションの1ページあたりの表示件数変更時のコールバック
* @param param 変更後の1ページあたりの表示件数
*/
onPageSizeChange: (size: number) => void;
/**
* カラムの状態が変更されたときに呼び出されるコールバック
* 順序変更時、表示/非表示変更時、フィルタ入力クリア時に呼び出されるので
* それに合わせて、そのまま columns を更新してください。
* フィルタ入力クリア時は、filtered が false になっているので、自身で各フィルタの入力値を空白にしてください。
* @param columns 変更後のカラム
*/
onColumnsChange: (columns: TableColumn[]) => void;
/**
* テーブルアクションボタン群の定義。enabledWhenとdisplayInで表示場所を制御:
* - enabledWhen: "checked" + displayIn: "toolbar" → デスクトップ時は左側の直接ボタン、モバイル時は「n件を操作」ドロップダウン
* - enabledWhen: "checked" + displayIn: "dropdown" → デスクトップ時は左側の3点リーダーボタン、モバイル時は「n件を操作」ドロップダウン
* - enabledWhen: "unchecked" + displayIn: "toolbar" → デスクトップ時は右側の直接ボタン、モバイル時は右側の3点リーダーボタン
* - enabledWhen: "unchecked" + displayIn: "dropdown" → デスクトップ・モバイル共に右側の3点リーダーボタン
*
* disabledプロパティによる追加制御:
* - enabledWhen: "checked"/"unchecked" と組み合わせて使用可能。基本条件に加えて追加の無効化条件を指定できる
* - 例: enabledWhen: "checked" + disabled: (rows) => rows.length >= 2 → 1件選択時のみ有効
* - enabledWhen: "custom" の場合はdisabled関数の結果のみで有効/無効が決定される
*/
tableActions?: TableAction[];
/**
* テーブルアクションエリアを完全カスタマイズしたい場合のrender-props。isSmallLayout, checkedRows等を受け取れる。
*/
customTableActionArea?: (context: {
isSmallLayout: boolean;
checkedRows: string[];
}) => React.ReactNode;
/**
* 複数行選択 UI を有効にするか。`false` のとき一括チェック・「n件を」・行頭チェック列を出さない。
* 行選択 UI を出すには `true` に加え **`tableActions` を渡す**必要がある(`tableActions` が無いとチェック列もツールバーも出ない)。
* @default true
*/
enableRowSelection?: boolean;
/**
* カラム編集メニューでエンドユーザーに許可する操作。
* 例: `{ reorder: false }` で表示 ON/OFF のみ、`{ visibility: false }` で並び替えのみ。
*/
columnEditFeatures?: DataTable2ColumnEditFeatures;
/**
* テーブル下部にも件数表示・ページネーションを表示する。
* 上部ツールバー右側と同じ UI を右下に複製する。
* @default false
*/
showBottomPagination?: boolean;
} & {
/**
* 見た目の制御。枠線で囲むか否か。枠線で囲むと角丸も適用される
*/
bordered?: boolean;
children: ReactNode;
/**
* 行のチェック状態が変更されたときに呼び出されるコールバック
* 読み取り専用で、今のところは外から `checkedRows` を変更することはできません
*/
onCheckedRowsChange?: (checkedRows: string[]) => void;
};
export declare const DataTable2: ({ bordered, currentPage, pageSize, pageSizeOptions, totalCount, columns, onPageChange, onPageSizeChange, onColumnsChange, onCheckedRowsChange, children, tableActions, customTableActionArea, enableRowSelection, columnEditFeatures: columnEditFeaturesProp, showBottomPagination, }: DataTable2Props) => React.JSX.Element;
export {};