import { POLICY_TARGET } from './constants'; export interface RequestResponse { code: number; msg: string; data: string; } export interface PreCheckData { appId?: string; appKey?: string; extData?: Record; token?: string; url?: string; fp?: string; } export interface CommonStyles { width?: number | `${number}%` | `${number}px`; top?: number | `${number}px`; align?: 'left' | 'center' | 'right'; } export interface LogoStyles extends CommonStyles { height?: number | `${number}px`; } export interface SloganStyles extends CommonStyles { color?: string; size?: number | `${number}px`; } export interface PhoneStyles extends Omit { color?: string; size?: number | `${number}px`; cursorColor?: string; subBottomColor?: string; subWidth?: number | `${number}px`; subHeight?: number | `${number}px`; squareBackground?: string; squareWidth?: number | `${number}px`; squareHeight?: number | `${number}px`; squareRadius?: number | `${number}px`; } export type PhoneInputStyle = 'sub' | 'square'; export interface SwitchButtonStyles extends CommonStyles { color?: string; size?: number | `${number}px`; } export type PolicyTarget = typeof POLICY_TARGET[keyof typeof POLICY_TARGET]; export interface PolicyDefine { url: string; content: string; target?: PolicyTarget; } export interface PolicyStyles extends CommonStyles { color?: string; size?: number | `${number}px`; linkColor?: string; } export interface LoginButtonStyles extends CommonStyles { height?: number | `${number}%` | `${number}px`; color?: string; size?: number | `${number}px`; background?: string; radius?: number | `${number}px`; } export interface ToastStyles extends CommonStyles { } export type Mode = 'float' | 'popup'; export type Element = 'back' | 'logo' | 'slogan' | 'phone' | 'switchButton' | 'policy' | 'loginButton'; export type OverflowType = 'scroll' | 'auto' | 'hidden' | 'visible'; export interface ContainerStyles { overflow?: OverflowType; } export interface CommonOptions { mode?: Mode; __preview__?: boolean; elements?: Element[]; backText?: string; logo?: string; logoStyles?: LogoStyles; sloganAppName?: string; sloganStyles?: SloganStyles; phoneStyles?: PhoneStyles; phoneInputStyle?: PhoneInputStyle; switchBtnText?: string; switchBtnStyles?: SwitchButtonStyles; policy?: PolicyDefine[]; policyTarget?: PolicyTarget; policyStyles?: PolicyStyles; loginBtnText?: string; loginBtnStyles?: LoginButtonStyles; toastDelay?: number; toastShow?: boolean; toastStyles?: ToastStyles; containerStyles?: ContainerStyles; } export interface Options extends CommonOptions { businessId: string; popupContainer?: HTMLElement | string; iframeStyles?: CSSStyleDeclaration; iframePath?: string; buriedDisabled?: boolean; buriedUrl?: string; apiServer?: string; timeout?: number; } export interface IframeOptions extends CommonOptions { container: HTMLElement | string; } export interface IframeUrlParams { token?: string; appId?: string; traceId?: string; version?: string; accessToken?: string; maskPhone?: string; elements?: string; toastShow?: string; mode?: Mode; } export type AddPrefix = `${P}${T}`;