import * as React from 'react';
import { PressableProps } from './pressable.js';
import { SocialPlatformName } from '@opensite/hooks/usePlatformFromUrl';
export { SocialPlatformName } from '@opensite/hooks/usePlatformFromUrl';
import 'class-variance-authority';
import './button-variants-8mtEHxev.js';
import 'class-variance-authority/types';

/**
 * Props for DynamicIcon that can be passed through
 */
interface SocialLinkIconDynamicIconProps {
    /**
     * Icon size in pixels
     * @default 20
     */
    iconSize?: number;
    /**
     * Icon color - accepts any valid CSS color
     * Note: When not specified, the icon inherits color from parent via CSS currentColor
     */
    iconColor?: string;
    /**
     * Additional CSS classes for the icon
     */
    iconClassName?: string;
}
/**
 * Props for the SocialLinkIcon component
 */
interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLinkIconDynamicIconProps {
    /**
     * The social platform name - determines which icon to display
     */
    platformName?: SocialPlatformName;
    /**
     * Optional label for accessibility (defaults to platform name)
     */
    label?: string;
    /**
     * Optional icon name override
     */
    iconNameOverride?: string;
    /**
     * Required href for the link
     */
    href: string;
    /**
     * Return icon only
     * @default false
     */
    iconOnly?: boolean;
}
/**
 * SocialLinkIcon - A reusable social media link icon component.
 *
 * Combines Pressable navigation with DynamicIcon rendering for social media platforms.
 * Supports all major social platforms with proper icon mapping.
 *
 * @example
 * ```tsx
 * // Basic usage
 * <SocialLinkIcon platformName="instagram" href="https://instagram.com/company" />
 *
 * // With custom size and styling
 * <SocialLinkIcon
 *   platformName="x"
 *   href="https://x.com/company"
 *   iconSize={24}
 *   className="hover:text-primary"
 * />
 *
 * // As a button-styled link
 * <SocialLinkIcon
 *   platformName="linkedin"
 *   href="https://linkedin.com/company/example"
 *   asButton
 *   variant="outline"
 *   size="icon"
 * />
 * ```
 */
declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>>;

export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
