@circle-apps/sdk
Version:
Official SDK for Celia Mini Apps integration
53 lines (52 loc) • 1.82 kB
TypeScript
import { AuthOptions, AuthResponse, ShareOptions, AdOptions, BannerAdOptions, AdResponse, LanguageResponse } from "./types";
declare global {
interface Window {
ReactNativeWebView?: {
postMessage: (message: string) => void;
};
_celiaMiniCallbacks?: {
[key: string]: {
resolve: (value: any) => void;
reject: (reason?: any) => void;
timeout: ReturnType<typeof setTimeout>;
};
};
_celiaAppLanguage?: string;
celiaMini?: {
share: (options: any) => Promise<any>;
authenticate: (options: any) => Promise<any>;
showAd: (options: any) => Promise<any>;
showBannerAd: (options: any) => Promise<any>;
hideBannerAd: (options: any) => Promise<any>;
getLanguage: () => Promise<any>;
onAdEvent: ((event: any) => void) | null;
_cachedLanguage?: string;
};
}
}
export declare class CeliaSDK {
isInitialized: boolean;
readonly isWebView: boolean;
readonly isCircleMiniApp: boolean;
constructor();
verifyEnvironment(): {
isWebView: boolean;
isCircleMiniApp: boolean;
isValid: boolean;
};
private initialize;
authenticate(options: AuthOptions): Promise<AuthResponse>;
share(options: ShareOptions): Promise<void>;
showAd(options: AdOptions): Promise<AdResponse>;
showBannerAd(options: BannerAdOptions): Promise<AdResponse>;
hideBannerAd(options: {
containerId: string;
}): Promise<AdResponse>;
getLanguage(): Promise<LanguageResponse>;
private setupCallback;
private postMessage;
private injectBridge;
private setupMessageListener;
private handleIncomingEvent;
}
export default CeliaSDK;