import { Color } from '@ionic/core'; /** * Social platform identifiers for sharing. */ export type SharePlatform = 'whatsapp' | 'facebook' | 'twitter' | 'telegram' | 'linkedin' | 'email' | 'copy' | 'native'; /** * Configuration for a share button. */ export interface ShareButtonConfig { /** Platform identifier */ platform: SharePlatform; /** Custom label (overrides default) */ label?: string; /** Custom icon (overrides default) */ icon?: string; /** Custom color (overrides default) */ color?: Color | string; /** Whether this button is disabled */ disabled?: boolean; /** Additional custom data for the platform */ customData?: Record; } /** * Data to be shared. */ export interface ShareData { /** Title of the content */ title?: string; /** Description or message */ text?: string; /** URL to share */ url?: string; /** Hashtags (for Twitter) */ hashtags?: string[]; /** Email subject (for email sharing) */ emailSubject?: string; /** Email body (for email sharing) */ emailBody?: string; /** Phone number for WhatsApp (optional, for direct messaging) */ whatsappPhone?: string; } /** * Metadata for the share buttons component. */ export interface ShareButtonsMetadata { /** Data to share */ shareData: ShareData; /** Platforms to show (defaults to all) */ platforms?: SharePlatform[]; /** Custom button configurations */ buttons?: ShareButtonConfig[]; /** Layout direction */ layout?: 'horizontal' | 'vertical'; /** Size variant */ size?: 'small' | 'medium' | 'large'; /** Button style */ variant?: 'solid' | 'outline' | 'icon-only'; /** Show labels */ showLabels?: boolean; /** Gap between buttons */ gap?: number; /** Custom CSS class */ cssClass?: string; /** Use platform colors */ usePlatformColors?: boolean; /** Default color (when not using platform colors) */ color?: Color; /** Show copy success toast */ showCopyToast?: boolean; /** Copy success message */ copySuccessMessage?: string; /** Use native share when available */ preferNativeShare?: boolean; /** Content class for reactive content */ contentClass?: string; /** Content key for copy success message */ copySuccessMessageContentKey?: string; } /** * Event emitted when a share action is performed. */ export interface ShareEvent { /** Platform that was used */ platform: SharePlatform; /** Whether the share was successful */ success: boolean; /** Error message if failed */ error?: string; /** The share data that was used */ shareData: ShareData; } /** * Default platform configurations. */ export interface PlatformConfig { name: string; icon: string; color: string; getUrl: (data: ShareData) => string; } /** * Default platform configurations. */ export declare const PLATFORM_CONFIGS: Record; /** * Default platforms to show. */ export declare const DEFAULT_PLATFORMS: SharePlatform[];