import { type UseQueryResult } from '@tanstack/react-query';
import { type ChainId, type Freebet, type Selection } from '@azuro-org/toolkit';
import { type Address } from 'viem';
import { type QueryParameterWithSelect } from '../../global';
export type UseAvailableFreebetsQueryFnData = Freebet[];
export type UseAvailableFreebetsProps<TData = UseAvailableFreebetsQueryFnData> = {
    account: Address;
    affiliate: Address;
    selections: Selection[];
    chainId?: ChainId;
    query?: QueryParameterWithSelect<UseAvailableFreebetsQueryFnData, TData>;
};
export type UseAvailableFreebets = <TData = UseAvailableFreebetsQueryFnData>(props: UseAvailableFreebetsProps<TData>) => UseQueryResult<TData>;
export type GetUseAvailableFreebetsQueryOptionsProps<TData = UseAvailableFreebetsQueryFnData> = UseAvailableFreebetsProps<TData> & {
    chainId: ChainId;
};
export declare const getUseAvailableFreebetsQueryOptions: <TData = UseAvailableFreebetsQueryFnData>(params: GetUseAvailableFreebetsQueryOptionsProps<TData>) => import("@tanstack/query-core").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<Freebet[], Error, TData, readonly unknown[]>, "queryFn"> & {
    queryFn?: import("@tanstack/query-core").QueryFunction<Freebet[], readonly unknown[], never> | undefined;
} & {
    queryKey: readonly unknown[] & {
        [dataTagSymbol]: Freebet[];
        [dataTagErrorSymbol]: Error;
    };
};
/**
 * Retrieves available freebets for a specific account, affiliate, and bet selections.
 * Only returns freebets that can be applied to the provided selections.
 *
 * - Docs: https://gem.azuro.org/hub/apps/sdk/bonus/useAvailableFreebets
 *
 * @example
 * import { useAvailableFreebets } from '@azuro-org/sdk'
 *
 * const { data: freebets, isLoading } = useAvailableFreebets({
 *   account: '0x...',
 *   affiliate: '0x...',
 *   selections: [{ conditionId: '123', outcomeId: '1' }],
 * })
 * */
export declare const useAvailableFreebets: <TData = UseAvailableFreebetsQueryFnData>(props: UseAvailableFreebetsProps<TData>) => UseQueryResult<NoInfer<TData>, Error>;
