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<string, string>;
}
/**
 * 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<SharePlatform, PlatformConfig>;
/**
 * Default platforms to show.
 */
export declare const DEFAULT_PLATFORMS: SharePlatform[];
