import * as _accelbyte_sdk_platform from '@accelbyte/sdk-platform';
import React from 'react';
import { AccelbyteSDK } from '@accelbyte/sdk';

declare type FetcherProps = {
    sdk: AccelbyteSDK;
};
declare const multiGameFetcher: ({ sdk, country }: FetcherProps & {
    country?: string | undefined;
}) => Promise<{
    bannerItem: _accelbyte_sdk_platform.ItemPagingSlicedResult;
    currencyObject: {
        [k: string]: _accelbyte_sdk_platform.CurrencyInfo;
    };
    featuredGames: _accelbyte_sdk_platform.ItemPagingSlicedResult;
}>;
declare const singleGameFetcher: ({ sdk, appId, country }: FetcherProps & {
    appId: string;
    country?: string | undefined;
}) => Promise<{
    itemLocale: _accelbyte_sdk_platform.PopulatedItemInfo;
    appInfo: _accelbyte_sdk_platform.AppInfo;
    currencyObject: {
        [k: string]: _accelbyte_sdk_platform.CurrencyInfo;
    };
}>;
declare const homePageFetcher: ({ sdk, country, isSingleGame, appId }: FetcherProps & {
    country?: string | undefined;
    appId?: string | undefined;
    isSingleGame: boolean;
}) => Promise<{
    multipleGame?: {
        bannerItem: _accelbyte_sdk_platform.ItemPagingSlicedResult;
        currencyObject: {
            [k: string]: _accelbyte_sdk_platform.CurrencyInfo;
        };
        featuredGames: _accelbyte_sdk_platform.ItemPagingSlicedResult;
    } | undefined;
    singleGame?: {
        itemLocale: _accelbyte_sdk_platform.PopulatedItemInfo;
        appInfo: _accelbyte_sdk_platform.AppInfo;
        currencyObject: {
            [k: string]: _accelbyte_sdk_platform.CurrencyInfo;
        };
    } | undefined;
}>;

interface HomePageWidgetProps {
    /**
     * Allows for cleaning the homepage redirection when the homepage is disabled and there is a base path included in the redirection URL.
     */
    basePath?: string;
    initialData?: Awaited<ReturnType<typeof homePageFetcher>>;
}
declare const HomePageContext: React.Context<{
    multipleGame?: {
        bannerItem: _accelbyte_sdk_platform.ItemPagingSlicedResult;
        currencyObject: {
            [k: string]: _accelbyte_sdk_platform.CurrencyInfo;
        };
        featuredGames: _accelbyte_sdk_platform.ItemPagingSlicedResult;
    } | undefined;
    singleGame?: {
        itemLocale: _accelbyte_sdk_platform.PopulatedItemInfo;
        appInfo: _accelbyte_sdk_platform.AppInfo;
        currencyObject: {
            [k: string]: _accelbyte_sdk_platform.CurrencyInfo;
        };
    } | undefined;
} | undefined>;
declare function HomePageWidget({ basePath, initialData }: HomePageWidgetProps): JSX.Element | null;

export { FetcherProps, HomePageContext, HomePageWidget, homePageFetcher, multiGameFetcher, singleGameFetcher };
