interface GetBoxSizeParams { bgWidth: number; bgHeight: number; smallLeft?: number; smallTop?: number; smallWidth?: number; smallHeight?: number; mode?: "contain" | "cover" | "fill"; } interface GetImageBoxSizeParams { imgWidth: number; imgHeight: number; smallLeft?: number; smallTop?: number; smallWidth?: number; smallHeight?: number; } interface AnyObject { [key: string]: any; } type Platform = "app" | "miniProgram" | "web"; type CurrentEnvMode = "dev" | "qa" | "pp" | "prod"; interface ApiOptions { mode: CurrentEnvMode; buildModule: boolean; } interface WGSLocationMapParams { lat: number; lng: number; name: string; city?: string; } interface FillArrayParams { arr: T[]; count: number; fallbackValue: T[]; } declare class RoxUtils { private getSignature; private getH5Model; private getDeviceId; private sortJson; private appIsLogin; private getUserPhone; private enhanceAppIsLogin; private miniProgramIsLogin; private toAppHomePage; private toMiniProgramHomePage; private toMiniProgramLoginPage; private getMiniProgramHeaders; private getAppHeaders; private goBackOnApp; private goBackOnMiniProgram; private openAppMap; private openMiniProgramMap; isMiniProgram: () => boolean; isWechat: () => boolean; getHeaders: (method?: string, data?: any, key?: string, debug?: boolean, headers?: AnyObject) => Promise>; getAppUserInfo: (toLoginPage?: boolean) => Promise; getEnhanceUserPhone: () => Promise<{ phone: string; isLogin: boolean; }>; isLogin: (urlLoginField?: string, debug?: boolean) => Promise; enhanceIsLogin: (urlLoginField?: string, debug?: boolean) => Promise; toLoginPage: (loginPath: string) => void; goBack: ({ isShared, homePath }: { isShared: boolean; homePath: string; }) => void; toHomePage: (homePath: string) => void; appDownloadFile: (base64OrBlob: string | Blob) => Promise; showAppSharePopup: (base64OrBlob: string | Blob, withDownload?: boolean) => Promise; openLocationMap: (location: WGSLocationMapParams) => Promise; jumpToAppPage: ({ pageType, url, iosUrl, androidUrl, replace, }: { pageType: number; url?: string; iosUrl?: string; androidUrl?: string; replace?: boolean; }) => Promise; jumpToMiniProgramPage: (url: string, isTabBar?: boolean, reStart?: boolean) => void; getApiBaseUrl: ({ mode, buildModule }: ApiOptions) => Record; registerMethod: (eventName: string, data: any) => void; shuffleArray: (array: T[]) => T[]; fillArray: ({ arr, count, fallbackValue }: FillArrayParams) => T[]; /** * 注: 相对于视口宽高,盒子位置等比缩放 * @param {GetBoxSizeParams} options * @returns {x: number, y: number, width: number, height: number, scaleX: number, scaleY: number} */ getBoxSize: ({ bgWidth, bgHeight, smallLeft, smallTop, smallWidth, smallHeight, mode }: GetBoxSizeParams) => { x: number; y: number; width: number; height: number; scaleX: number; scaleY: number; }; /** * 注: 并非相对于视口宽高,而是相对于图片(图片有可能高于或者低于视口高度), 盒子位置等比缩放 * @param {GetImageBoxSizeParams} options * @returns {x: number, y: number, width: number, height: number, scale: number, renderedImgHeight: number} */ getImageBoxSize: ({ imgWidth, imgHeight, smallLeft, smallTop, smallWidth, smallHeight }: GetImageBoxSizeParams) => { x: number; y: number; width: number; height: number; scale: number; renderedImgHeight: number; }; downloadLargePDF: (url: string, filename?: string) => Promise; enhancedDownloadBlob: (url: string, filename?: string) => Promise<{ ok: boolean; message: string; }>; downloadBlob: (url: string, filename?: string) => Promise<{ ok: boolean; message: string; }>; flowVideo: (container: HTMLElement, threshold?: number) => void; } declare const roxUtils: RoxUtils; declare global { interface Window { __wxjs_environment: any; [key: string]: any; } } declare const _default: { roxUtils: RoxUtils; }; export { _default as default, roxUtils };