import { FormEvent } from 'react'; import { SingleComboBoxOption, FetchParams, ApiMetaData } from '.'; export declare const useApiComboBoxInternal: ({ createNewItem, currentPage, fetchItems, onBlur, onChange, onFocus, onKeyDown, options, totalPages, value, }: { createNewItem?: ((fieldValue: string) => void) | undefined; currentPage: number; fetchItems: (params: FetchParams) => Promise; onBlur?: ((e: FormEvent, fetchParams: FetchParams, value?: SingleComboBoxOption | undefined) => void) | undefined; onChange?: ((option?: SingleComboBoxOption | undefined) => void) | undefined; onFocus?: ((e: FormEvent, fetchParams: FetchParams, isFieldChanged: boolean, value?: SingleComboBoxOption | undefined) => void) | undefined; onKeyDown?: import("react").KeyboardEventHandler | undefined; options: SingleComboBoxOption[]; totalPages: number; value?: SingleComboBoxOption | undefined; }) => { fieldValue: string; isLoadingMore: boolean; isOpen: boolean; listOptionsRef: import("react").RefObject; loadMore: () => void; onFieldBlur: (e: React.FormEvent) => void; onFieldChange: (e: React.ChangeEvent) => Promise; onFieldFocus: (e: React.FormEvent) => void; onFieldKeyDown: (e: React.KeyboardEvent) => void; onSelectOption: (option?: SingleComboBoxOption | undefined) => void; selectedIndex: number; selectedOptionRef: import("react").RefObject; }; /** * ApiComboBoxのためにAPIをラップし、以下の機能を付与します。 * * - 複数のApiComboBoxで利用するためのリソース管理 * - ローディング状態の管理 * - 初期化時のAPI呼び出し * - フォーカス時の挙動制御 * * このhooksの利用は必須ではありません。 * */ export declare const useApiComboBox: ({ createOptions, fetchItems, fetchOnInit, initialName, responseAdapter, }: { createOptions: (items: T[]) => SingleComboBoxOption[]; fetchItems: (params: FetchParams) => Promise; /** * 初期化時にfetchを一回呼ぶ */ fetchOnInit?: boolean | undefined; /** * 初期値としてセットするアイテム名 */ initialName?: string | undefined; /** * APIレスポンスの形が合わない場合に整形する */ responseAdapter?: ((response: any) => { items: T[]; meta: ApiMetaData; }) | undefined; }) => { fetchItems: ({ name, page, }?: FetchParams) => Promise; isLoading: boolean; meta: ApiMetaData; onFocus: (_e: FormEvent, _fetchParams: FetchParams, _isFieldChanged: boolean, _value?: SingleComboBoxOption | undefined) => void; options: import(".").ComboBoxOption[]; /** * ApiComboBox の props としては使用しないが、useApiComboBox で取得したリソースを * 他のコンポーネントから参照・編集したいケースのために返している */ items: T[]; createOptions: (items: T[]) => SingleComboBoxOption[]; setItems: (newItems: T[]) => void; setMeta: (newMeta: ApiMetaData) => void; };