/** * Core types for UP Connector */ type AddressData = { address: string; name?: string; lsp4TokenName?: string; lsp4TokenSymbol?: string; baseAsset?: { lsp4TokenName?: string; lsp4TokenSymbol?: string; }; profileImages?: any[]; avatar?: any[]; icon?: any[]; images?: any[]; __gqltype?: string; __identity?: string; identity?: string; }; /** * Avatar configuration options */ interface AvatarOptions { address?: string; resolved?: AddressData; size?: 'x-small' | 'small' | 'medium' | 'large' | 'auto'; label?: string; chainId?: number; forceUnresolved?: boolean; fallbackColor?: string; fallbackText?: string; fallbackImage?: string; avatarSize?: 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | '2x-large'; initialPosition?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; hideThreshold?: number; hideOffset?: number; transitionDuration?: string; transitionEasing?: string; container?: HTMLElement; componentLoader?: () => Promise; onPositionChange?: (position: string) => void; onHide?: () => void; onShow?: () => void; onClick?: (event: MouseEvent, data: { address?: string; resolved?: AddressData; }) => void; onAddressClick?: (event: CustomEvent) => void; onTransactionStart?: () => void; onTransactionComplete?: () => void; } /** * Connection state */ type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'error'; /** * Wallet provider information */ interface WalletProvider { id: string; name: string; icon: string; description?: string; isInstalled: boolean; isRecommended?: boolean; downloadUrl?: string; connect: () => Promise<{ address: string; provider: any; }>; } /** * Connection modal options * @deprecated Legacy modal options - no longer used by ConnectModal (Lit component) * The Lit-based ConnectModal is configured globally via setupConnectModal() * and controlled via the `open` property. These options are kept for * backwards compatibility but have no effect. */ interface ModalOptions { theme?: 'light' | 'dark' | 'auto'; borderRadius?: number; closeOnBackdrop?: boolean; closeOnEscape?: boolean; showCloseButton?: boolean; animationDuration?: number; animationEasing?: string; animateFrom?: { x: number; y: number; width: number; height: number; }; providers?: string[]; hideProviders?: string[]; onConnect?: (result: { address: string; provider: any; }) => void; onDisconnect?: () => void; onClose?: () => void; onProviderClick?: (provider: WalletProvider) => void; } /** * UP Connector configuration */ interface ConnectorConfig { avatar?: AvatarOptions; /** * @deprecated Legacy modal configuration - no longer used * Use setupConnectModal() globally to configure the Lit-based ConnectModal * @see setupConnectModal */ modal?: ModalOptions; autoConnect?: boolean; persistConnection?: boolean; storageKey?: string; chainId?: number; rpcUrl?: string; onConnectionChange?: (state: ConnectionState, data?: any) => void; } /** * Draggable Avatar Component for UP Connector * Integrates with @lukso/transaction-view-core IconView */ declare class DraggableAvatar { private options; private overlay; private element; private iconViewElement?; private snapPreviews; private isDragging; private hasDragged; private startX; private startY; private initialX; private initialY; private dragThreshold; /** * Convert size name to pixel value * Based on Tailwind classes: x-small=24px, small=40px, medium=56px, large=80px, x-large=96px, 2x-large=120px */ private getPixelSize; /** * Get identicon overhang for a given profile size * The identicon hangs off the bottom-right corner by half its size */ private getIdenticonOverhang; private currentPosition?; private isHidden; private iconViewAvailable; private isThrobbing; constructor(options?: AvatarOptions); private init; /** * Safely check for and load IconView component */ private checkIconViewAvailability; private createStyles; private createElement; private createContent; private createFallbackContent; private attachEventListeners; private getSnapPositions; private findClosestSnapPosition; private setInitialPosition; private snapToPosition; private showAllSnapPreviews; private updateActiveSnapPreview; private hideAllSnapPreviews; private handleMouseDown; private handleMouseMove; private handleMouseUp; private handleTouchStart; private handleTouchMove; private handleTouchEnd; private handleClick; private handleResize; setPosition(positionName: string): void; hide(): void; show(): void; setConnected(connected: boolean): void; updateAddress(address: string, resolved?: AddressData, chainId?: number): void; updateResolved(resolved: AddressData): void; updateSize(newSize: 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | '2x-large'): void; getElement(): HTMLElement | null; getPosition(): { x: number; y: number; name: string; } | null; startThrob(): void; stopThrob(): void; getAvatarRect(): DOMRect | null; destroy(): void; } /** * Factory function for creating draggable avatars */ declare function createAvatar(options?: AvatarOptions): Promise; export { type AddressData as A, type ConnectorConfig as C, DraggableAvatar as D, type WalletProvider as W, type ConnectionState as a, type AvatarOptions as b, createAvatar as c };