SDKBase.d.ts 3.99 KB
import { LaunchOptionType, LoginDataType, LoginDataTypeV2, SDKConfigType, SDKConfigTypeV2 } from "./SDKTypes";
import { DeepReadonly } from "simba-utils";
export declare let V2: boolean;
export declare let SDKConfig: Readonly<SDKConfigType> | Readonly<SDKConfigTypeV2>;
export declare let SDKConfigV2: Readonly<SDKConfigTypeV2>;
export declare function setConfig(config: Readonly<SDKConfigType>): void;
export declare function setConfigV2(config: Readonly<SDKConfigTypeV2>): void;
export declare abstract class SDKBase {
    protected loginInfo?: LoginDataType | LoginDataTypeV2;
    readonly systemInfo: {
        deviceInfo: {
            model: string;
            brand: string;
            platform: string;
            system: string;
            version: string;
            SDKVersion: string;
        };
        displayInfo: {
            windowSize: {
                width: number;
                height: number;
            };
            safeArea: {
                left: number;
                top: number;
                right: number;
                bottom: number;
            };
        };
    };
    init(): Promise<boolean>;
    protected abstract _login(): Promise<{
        code: string;
    }>;
    abstract getChannel(): string;
    /**构建登录传给服务器的参数 */
    buildLoginParam(param: any): any;
    login(extraParams?: {
        [key: string]: string;
    }, timeout?: number): Promise<LoginDataType | LoginDataTypeV2>;
    /**原生平台不能调用 getSDKRecord*/
    timeManagerOnLogin(): Promise<void>;
    /**下载存档 */
    downloadRecord(): Promise<void>;
    /**静默获取token */
    refreshLocalServerToken(): Promise<void>;
    getHttpHeaders(): {
        IcesimbaToken: string;
        IcesimbaSession: string;
        "Content-Type": string;
    };
    isLoggedIn(): boolean;
    getLoginInfo(): DeepReadonly<LoginDataType> | DeepReadonly<LoginDataTypeV2> | undefined;
    uploadGameRecord(data: Object): void;
    getGameRecord(): Object;
    bi(category: string, id: string, gameBasicMetrics: {
        user_register_version: string;
        login_duration: number;
        total_duration: number;
        daily_duration: number;
        [key: string]: any;
    }, gameData: Object): Promise<string | ArrayBuffer>;
    abstract getLaunchOptions(): LaunchOptionType;
    abstract checkSession(): Promise<boolean>;
    abstract exit(): void;
    abstract showRewardedVideoAd(): Promise<{
        result: "complete" | "cancel" | "fail";
    }>;
    abstract showInterstitialAd(): Promise<boolean>;
    abstract showBannerAd(style: {
        left: number;
        top: number;
        width: number;
        height: number;
        anchorX?: number;
        anchorY?: number;
    }, refreshInterval?: number): Promise<boolean>;
    abstract hideBannerAd(): void;
    abstract shareAppMessage(info: {
        title?: string;
        imageUrl?: string;
        query?: string;
        imageUrlId?: string;
    }): Promise<boolean>;
    abstract setClipboardData(data: string): Promise<void>;
    abstract createGameClubButton(obj: {
        type: 'text' | 'image';
        text?: string;
        image?: string;
        style: {
            left: number;
            top: number;
            width: number;
            height: number;
            backgroundColor?: string;
            borderColor?: string;
            borderWidth?: number;
            borderRadius?: number;
            textAlign?: 'left' | 'center' | 'right';
            fontSize?: number;
            lineHeight?: number;
        };
        icon: 'green' | 'white' | 'dark' | 'light';
    }): boolean;
    abstract hideGameClubButton(): void;
    abstract showGameClubButton(): void;
    abstract destroyGameClubButton(): void;
    abstract openProgram(appId: string, extraData?: object): Promise<void>;
    abstract openCustomerServiceConversation(param: {
        sessionFrom?: string;
        showMessageCard?: boolean;
        sendMessageTitle?: string;
        sendMessagePath?: string;
        sendMessageImg?: string;
    }): Promise<boolean>;
}