import { IndexListControlAreaViewsProps, IndexListControlAreaWordSearchProps, ListControlAreaFiltersType, ListControlAreaProps, ListControlAreaSearchFilterType, ViewItemType } from '../../../areas/EXPERIMENTAL_ListControl'; import type { ApiPayloadOptions } from '../../../pages/fetcher'; import type { ApiSearchParams } from '../../../templates/IndexPage/types'; export type UseSearchReturn
= { /** * 現在選択中のviewのIDを取得 */ currentViewId: ViewItemType['id'] | undefined | null; /** * パラメーターの全体 */ searchQuery: P; /** * viewを更新する関数 */ setCurrentView: (view?: ViewItemType) => void; /** * 現在選択中のviewの設定値に戻す関数 */ resetCurrentViewParams: () => void; /** * 特定のパラメーター(フィルタ・表示切り替え)を更新する関数 */ setFilterSearchParams: (q: Partial
) => void;
/**
* 特定のパラメーター(フィルタ・表示切り替え以外)を更新する関数
*/
setMetaSearchParams: (q: Partial ;
metaSearchParams?: Partial ;
}) => void;
/**
* UI上ビューのエリアが表示されているかどうか
*/
viewsHidden: boolean;
/**
* 絞り込みが行われているかどうか
*/
isFiltered: boolean;
/**
* フィルター・表示切り替えの値
*/
filterSearchParams: P;
/**
* UI上は値を選択しているが、検索条件には反映されていない状態のフィルター・表示切り替えの値
*/
previewFilterSearchParams: P;
/**
* previewFilterSearchParamsを検索条件として反映する処理
*/
requestBatchSearch: () => void;
/**
* ビューに反映されるパラメーター
*/
viewReflectParams: P;
};
export declare const useSearch: ({ views, filters, displaySwitchOptions, bookmarks, apiPayloadOptions, disableQueryManipulation, wordSearch, searchMode, }: {
views?: IndexListControlAreaViewsProps | undefined;
filters: ListControlAreaSearchFilterType [];
displaySwitchOptions?: import('../../../areas/EXPERIMENTAL_ListControl').DisplaySwitchOptionsType | undefined;
bookmarks?: {
value: (keyof P)[];
onUpdateValue: (keys: (keyof P)[]) => void;
} | undefined;
wordSearch?: IndexListControlAreaWordSearchProps | undefined;
apiPayloadOptions?: ApiPayloadOptions | undefined;
disableQueryManipulation?: boolean | undefined;
searchMode?: "batch" | "incremental" | undefined;
}) => UseSearchReturn ;