/**
 * Input type definitions
 * @countermeasure/web-components/primitives/input
 */
export type InputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
export type InputSize = 'sm' | 'md' | 'lg';
export interface InputConfig {
    container?: HTMLElement | string;
    type?: InputType;
    placeholder?: string;
    value?: string;
    disabled?: boolean;
    readOnly?: boolean;
    required?: boolean;
    size?: InputSize;
    name?: string;
    ariaLabel?: string;
    className?: string;
    maxLength?: number;
    pattern?: string;
    autocomplete?: string;
    onInput?: (value: string) => void;
    onChange?: (value: string) => void;
    onFocus?: () => void;
    onBlur?: () => void;
    onKeyDown?: (event: KeyboardEvent) => void;
}
export interface InputGroupConfig {
    container?: HTMLElement | string;
    className?: string;
}
export interface TextareaConfig {
    container?: HTMLElement | string;
    placeholder?: string;
    value?: string;
    disabled?: boolean;
    readOnly?: boolean;
    required?: boolean;
    rows?: number;
    maxLength?: number;
    autoResize?: boolean;
    name?: string;
    ariaLabel?: string;
    className?: string;
    onInput?: (value: string) => void;
    onChange?: (value: string) => void;
    onFocus?: () => void;
    onBlur?: () => void;
}
export interface InputOTPConfig {
    container?: HTMLElement | string;
    length?: number;
    mask?: boolean;
    disabled?: boolean;
    ariaLabel?: string;
    onComplete?: (value: string) => void;
    onChange?: (value: string) => void;
}
export interface IPInputConfig {
    container?: HTMLElement | string;
    version?: 4 | 6;
    value?: string;
    disabled?: boolean;
    ariaLabel?: string;
    onChange?: (value: string) => void;
}
//# sourceMappingURL=types.d.ts.map