/**
 * useLookupList loads and normalizes lookup options for fields that depend on remote or cached reference lists.
 * This doc block is consumed by vue-docgen for generated API documentation.
 */
import { type Ref } from 'vue';
export interface StaticLookupProps {
    fuzzy?: boolean;
    sortBy?: string | string[];
    showCode?: boolean;
    modelName: string;
    modelBy?: Record<string, any>;
    itemTitle: string;
    itemValue: string;
    fields?: Array<string | object>;
    cache?: boolean | number;
    filterKeys?: string | string[];
    noDataText?: string;
    placeholder?: string;
    multiple?: boolean;
    statusField?: string;
    activeValue?: any;
    hideInactiveInList?: boolean;
    preventSelectingInactive?: boolean;
}
export interface LookupProps extends StaticLookupProps {
    serverSearch?: boolean;
    serverSearchKey?: string;
    searchSearchSort?: boolean;
    serverSearchDebounce?: number;
    serverSearchText?: string;
    serverSearchLoadingText?: string;
    modelSelectedItem?: string;
    modelSelectedItemBy?: Record<string, any>;
    modelSelectedItemKey?: string;
}
export interface LookupEmits {
    (e: 'update:selectedObject', payload: any | any[]): void;
}
export declare function useLookupList<T extends Record<string, any>>(props: LookupProps, emit: LookupEmits, selectedItems: Ref<any>): {
    modelItems: import("vue").ShallowRef<T[], T[]>;
    items: import("vue").ShallowRef<T[], T[]>;
    searchData: Ref<string, string>;
    isLoading: Ref<boolean, boolean>;
    isErrorLoading: Ref<boolean, boolean>;
    queryFields: import("vue").ComputedRef<any[]>;
    computedFilterKeys: import("vue").ComputedRef<string | string[]>;
    computedPlaceholder: import("vue").ComputedRef<string | undefined>;
    computedNoDataText: import("vue").ComputedRef<string | undefined>;
    computedItems: import("vue").ComputedRef<T[]>;
    selectedItemsObject: import("vue").ShallowRef<T[], T[]>;
    syncSelectedFromModelValue: () => Promise<void>;
    isSelectableValue: (value: any) => boolean;
    setModelValueGuarded: (val: any) => void;
    onUpdateModelValue: (val: any) => void;
    loadItems: () => Promise<void>;
    applyFuzzy: () => void;
};
