import type { Action } from "@reduxjs/toolkit";
import type { State } from "../../../../../metabase-types/store";
export interface EntityFetchOptions {
    reload?: boolean;
}
export interface EntityQueryOptions<TQuery = never> {
    entityQuery?: TQuery;
}
export interface UseEntityListOwnProps<TItem, TQuery = never, TMetadata = never> {
    fetchList: (query?: TQuery, options?: EntityFetchOptions) => Action;
    getList: (state: State, options: EntityQueryOptions<TQuery>) => TItem[] | undefined;
    getLoading: (state: State, options: EntityQueryOptions<TQuery>) => boolean | undefined;
    getLoaded: (state: State, options: EntityQueryOptions<TQuery>) => boolean | undefined;
    getError: (state: State, options: EntityQueryOptions<TQuery>) => unknown;
    getListMetadata: (state: State, options: EntityQueryOptions<TQuery>) => TMetadata | undefined;
}
export interface UseEntityListQueryProps<TQuery = never> {
    query?: TQuery;
    reload?: boolean;
    enabled?: boolean;
}
export interface UseEntityListQueryResult<TItem, TMetadata = never> {
    data?: TItem[];
    metadata?: TMetadata;
    isLoading: boolean;
    error: unknown;
}
/**
 * @deprecated use "metabase/api" instead
 */
export declare const useEntityListQuery: <TItem, TQuery = never, TMetadata = never>({ query: entityQuery, reload, enabled, }: UseEntityListQueryProps<TQuery>, { fetchList, getList, getLoading, getLoaded, getError, getListMetadata, }: UseEntityListOwnProps<TItem, TQuery, TMetadata>) => UseEntityListQueryResult<TItem, TMetadata>;
