import type { CallToAction } from '@r2u/react-ar-components'; import { SKUHandler, ViewerProps } from './methods/types'; import { Product } from './services/product'; import { Customer } from './services/customer'; import { ViewerFunctions } from './methods/viewer'; export default interface R2U { init: (params: { customerId: string; language?: 'pt' | 'en' | 'es'; analyticsParams?: { dataLayerIntegration?: boolean; sessionDurationMinutes?: number; }; refreshCache?: boolean; }) => Promise; config: { changeLanguage(language: 'pt' | 'en' | 'es'): Promise; }; sku: { isActive: (sku: string) => Promise; getData: (sku: string) => Promise; }; customer: { isActive: (customerId: string) => Promise; getData: (customerId: string) => Promise; }; ar: { open: (params: { element: HTMLElement; event: string; }) => Promise; attach: (params: { element: HTMLElement; sku: string; price?: string; eventType?: string; resize?: boolean; callToAction?: CallToAction; showInstructions?: 'once' | 'always' | 'never'; showFeedback?: boolean; fallbackOptions?: { alertMessage?: string; fallback?: 'viewer' | 'full'; }; }) => Promise; getLink: (sku: string) => Promise; }; viewer: { create: (params: { element: HTMLElement; sku: string; name?: string; popup?: boolean; progressBarPosition?: 'top' | 'middle' | 'bottom'; poster?: string; autoRotate?: boolean; viewerProps?: Omit; }) => Promise; }; analytics: { send: (params: { event: string; data: Record; scope?: 'event' | 'page' | 'session' | 'sku'; }) => Promise; }; qrCode: { create: (params: { element: HTMLElement; sku: string; showInstructions?: 'once' | 'always' | 'never'; }) => Promise; }; } declare global { interface Window { R2U: R2U; } } declare const init: (params: { customerId: string; language?: 'pt' | 'en' | 'es'; analyticsParams?: { dataLayerIntegration?: boolean; sessionDurationMinutes?: number; }; refreshCache?: boolean; }) => Promise; declare const config: { changeLanguage: (language: 'pt' | 'en' | 'es') => Promise; }; declare const ar: { open: (params: { element: HTMLElement; event: string; }) => Promise; attach: (params: { element: HTMLElement; sku: string; price?: string; eventType?: string; resize?: boolean; callToAction?: CallToAction; showInstructions?: 'once' | 'always' | 'never'; showFeedback?: boolean; fallbackOptions?: { alertMessage?: string; fallback?: 'viewer' | 'full'; }; }) => Promise; getLink: (sku: string) => Promise; }; declare const sku: { isActive: (sku: string) => Promise; getData: (sku: string) => Promise; }; declare const customer: { isActive: (customerId: string) => Promise; getData: (customerId: string) => Promise; }; declare const viewer: { create: (params: { element: HTMLElement; sku: string; name?: string; popup?: boolean; progressBarPosition?: 'top' | 'middle' | 'bottom'; poster?: string; autoRotate?: boolean; viewerProps?: Omit; }) => Promise; }; declare const analytics: { send: (params: { event: string; data: Record; scope?: 'event' | 'page' | 'session' | 'sku'; }) => Promise; }; declare const qrCode: { create: (params: { element: HTMLElement; sku: string; showInstructions?: 'once' | 'always' | 'never'; }) => Promise; }; export { init, sku, customer, ar, viewer, analytics, qrCode, config };