import { type Address } from 'viem';
import { type ChainId } from '../../config';
import { type Freebet, type Selection } from '../../global';
import { type RawBonus } from './getBonuses';
export type GetFreebetsResponse = {
    bonuses: RawBonus[];
};
export type GetAvailableFreebetsParams = {
    chainId: ChainId;
    account: Address;
    affiliate: Address;
    selections: Selection[];
};
export type GetAvailableFreebetsResult = Freebet[] | null;
/** @deprecated use GetAvailableFreebetsResult instead */
export type GetAvailableFreebets = Freebet[] | null;
/**
 * Retrieves available freebets for a bettor that can be applied to specific bet selections.
 * Returns null if no freebets are available for the given selections.
 *
 * - Docs: https://gem.azuro.org/hub/apps/toolkit/bonus/getAvailableFreebets
 *
 * @example
 * import { getAvailableFreebets } from '@azuro-org/toolkit'
 *
 * const account = userWallet?.address
 * const affiliate = affiliateAddress
 * const selections = [
 *   { conditionId: '1', outcomeId: '1' },
 * ]
 *
 * const freebets = await getAvailableFreebets({
 *   chainId: 100,
 *   account,
 *   affiliate,
 *   selections
 * })
 * */
export declare const getAvailableFreebets: ({ chainId, account, affiliate, selections }: GetAvailableFreebetsParams) => Promise<GetAvailableFreebetsResult>;
