UNPKG

@azuro-org/sdk

Version:

One-stop solution for building betting dApps on the Azuro Protocol.

116 lines (115 loc) 4.06 kB
import { type ChainId, OrderDirection, GameOrderBy, type GetSportsParams, type SportData } from '@azuro-org/toolkit'; import { type UseQueryResult } from '@tanstack/react-query'; import { type QueryParameterWithSelect } from '../../global'; export type UseSportsQueryFnData = SportData[]; export type UseSportsProps<TData = UseSportsQueryFnData> = { filter?: { sportSlug?: string; countrySlug?: string; leagueSlug?: string; /** Filter for leagues, if not set, returns all leagues */ topLeagueFilter?: GetSportsParams['topLeagueFilter']; sportIds?: Array<string | number>; /** * default: 1000, * minimum: 10 * */ maxGamesPerLeague?: number; /** @deprecated pass `maxGamesPerLeague` instead */ limit?: number; }; gameOrderBy?: GameOrderBy; orderDir?: OrderDirection; /** if false or undefined, follows games sorting order */ sortLeaguesAndCountriesByName?: boolean; isLive?: boolean; chainId?: ChainId; query?: QueryParameterWithSelect<UseSportsQueryFnData, TData>; }; export type GetUseSportsQueryOptionsProps<TData = UseSportsQueryFnData> = UseSportsProps<TData> & { chainId: ChainId; }; export type UseSports<TData = UseSportsQueryFnData> = (props?: UseSportsProps<TData>) => UseQueryResult<TData>; export declare const getUseSportsQueryOptions: <TData = UseSportsQueryFnData>(params: GetUseSportsQueryOptionsProps<TData>) => import("@tanstack/query-core").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<{ countries: { leagues: { slug: string; name: string; turnover: string; isTopLeague: boolean; topWeight?: number; games: import("@azuro-org/toolkit").GameData[]; }[]; slug: string; name: string; turnover: string; }[]; id: number; slug: string; name: string; sportId: string; turnover: string; }[], Error, TData, readonly unknown[]>, "queryFn"> & { queryFn?: import("@tanstack/query-core").QueryFunction<{ countries: { leagues: { slug: string; name: string; turnover: string; isTopLeague: boolean; topWeight?: number; games: import("@azuro-org/toolkit").GameData[]; }[]; slug: string; name: string; turnover: string; }[]; id: number; slug: string; name: string; sportId: string; turnover: string; }[], readonly unknown[], never> | undefined; } & { queryKey: readonly unknown[] & { [dataTagSymbol]: { countries: { leagues: { slug: string; name: string; turnover: string; isTopLeague: boolean; topWeight?: number; games: import("@azuro-org/toolkit").GameData[]; }[]; slug: string; name: string; turnover: string; }[]; id: number; slug: string; name: string; sportId: string; turnover: string; }[]; [dataTagErrorSymbol]: Error; }; }; /** * Fetches sports data with nested country and league information. * Automatically filters out empty sports/countries/leagues (those without games). * * Use `isLive` prop to switch between live and prematch sports. * Supports custom sorting by turnover or game start time. * * - Docs: https://gem.azuro.org/hub/apps/sdk/data-hooks/useSports * * @example * import { useSports } from '@azuro-org/sdk' * * const { data: sports, isLoading } = useSports({ * filter: { sportHub: 'sports', maxGamesPerLeague: 20 }, * isLive: false * }) * */ export declare const useSports: <TData = UseSportsQueryFnData>(props?: UseSportsProps<TData>) => UseQueryResult<NoInfer<TData>, Error>;