declare global {
    interface Window {
        sbrowser_games?: AndroidApiBinding;
        webkit?: {
            messageHandlers?: IOSApiBinding | unknown;
        } | unknown;
    }
    let sbrowser_games: unknown;
    let webkit: unknown;
}
declare type AndroidApiBinding = ApiBinding<AndroidApiMethodBinding> & {
    isTablet?: AndroidApiMethodBinding | unknown;
};
declare type IOSApiBinding = ApiBinding<IOSApiMethodBinding>;
interface ApiBinding<MethodBinding extends AndroidApiMethodBinding | IOSApiMethodBinding> {
    terminateApp?: MethodBinding | unknown;
    terminate?: MethodBinding | unknown;
    gamesPlay?: MethodBinding | unknown;
    gamesExit?: MethodBinding | unknown;
    submitUsageStatistics?: MethodBinding | unknown;
    openLoginForm?: MethodBinding | unknown;
    isSignedIn?: MethodBinding | unknown;
    storage_get?: MethodBinding | unknown;
    storage_set?: MethodBinding | unknown;
    storage_delete?: MethodBinding | unknown;
}
interface AndroidApiMethodBinding {
    (...args: unknown[]): unknown;
}
interface IOSApiMethodBinding {
    postMessage?: ((serializedData: string) => void) | unknown;
}
export declare function isTablet(): boolean;
export declare function terminateApp(): boolean;
export declare function gamesPlay(gameId: string): void;
export declare function gamesExit(): boolean;
export declare function submitUsageStatistics(gameId: string, gamesPlayed: number, gamesWon: number): boolean;
export declare function openLoginForm(): boolean;
export declare function isSignedIn(): Promise<boolean>;
export interface Storage {
    get(key: string): Promise<unknown | null>;
    set(key: string, value: unknown): Promise<void>;
    delete(key: string): Promise<void>;
}
export declare function getStorage(): Storage | null;
export {};
