import { FormControl } from '@angular/forms';
import { Color } from '@ionic/core';
import { ComponentState } from '../../types';
/**
 * Metadata for the comment input component.
 */
export interface CommentInputMetadata {
    /** Form control for the comment value (optional when used in val-form) */
    control?: FormControl<string | null>;
    /** Unique token for the input */
    token?: string;
    /** Display label */
    label?: string;
    /** Field name */
    name?: string;
    /** Help text */
    hint?: string;
    /** Placeholder text */
    placeholder?: string;
    /** Field state */
    state?: ComponentState;
    /** Maximum character length */
    maxLength?: number;
    /** Minimum character length */
    minLength?: number;
    /** Number of visible rows */
    rows?: number;
    /** Show character counter */
    showCounter?: boolean;
    /** Counter format (e.g., '{current}/{max}') */
    counterFormat?: string;
    /** Component color */
    color?: Color;
    /** Custom CSS class */
    cssClass?: string;
    /** Fill style */
    fill?: 'solid' | 'outline';
    /** Content key for reactive label */
    contentKey?: string;
    /** Component class name for content lookup */
    contentClass?: string;
    /** Fallback text if content key is not found */
    contentFallback?: string;
    /** Custom error messages */
    errors?: Record<string, string>;
    /** Show validation errors */
    showErrors?: boolean;
}
/**
 * Event emitted when comment input changes.
 */
export interface CommentInputChangeEvent {
    /** Current comment value */
    value: string;
    /** Current character count */
    length: number;
    /** Remaining characters (if maxLength is set) */
    remaining: number | null;
}
