import { Color } from '@ionic/core';
import { LinkProcessorConfig } from '../../../services/link-processor.service';
/**
 * Props for val-text component.
 *
 * The component supports both static content and reactive content from the language service.
 * Use either `content` for static text or `contentKey` + `contentClass` for reactive text.
 *
 * @property content - Static text to display (takes precedence over contentKey)
 * @property contentKey - Key for dynamic content from language service
 * @property contentClass - Component class name for content lookup (required with contentKey)
 * @property contentFallback - Fallback text if contentKey is not found
 * @property contentInterpolation - Values to interpolate into the content string
 * @property color - The text color (Ionic color string)
 * @property size - The text size ('small' | 'medium' | 'large' | 'xlarge')
 * @property bold - Whether the text is bold
 * @property processLinks - Whether to automatically process and convert links in the text (default: false)
 * @property linkConfig - Configuration for link processing (colors, target behavior, etc.)
 */
export interface TextMetadata {
    size: 'small' | 'medium' | 'large' | 'xlarge';
    color: Color;
    content?: string;
    bold: boolean;
    contentKey?: string;
    contentClass?: string;
    contentFallback?: string;
    contentInterpolation?: Record<string, string | number>;
    processLinks?: boolean;
    linkConfig?: LinkProcessorConfig;
    allowPartialBold?: boolean;
}
/**
 * Configuration for reactive content in val-text component.
 * Use this interface when you only need to specify content-related properties.
 */
export interface TextContentConfig {
    contentKey: string;
    contentClass: string;
    contentFallback?: string;
    contentInterpolation?: Record<string, string | number>;
}
