export {};

declare global {
    namespace Inputs {
        type Type = 'text' | 'password' | 'number' | 'tel' | 'email';

        export interface Label {
            name: string;
            htmlFor: string;
            required: boolean;
            className?: string;
        }

        export interface Text {
            label?: string | { text: string; className?: string };
            name: string;
            required: boolean;
            placeholder?: string;
            className?: string;
            autoComplete?: string;
            defaultValue?: string;
            value?: string | number;
            readOnly?: boolean;
            onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
            onChangeSelect?: (event: ChangeEvent<HTMLInputElement>) => void;
        }

        export interface Password extends Text {
            isReading?: boolean;
        }

        export interface Select extends Text {
            options: string[];
            Enum: any;
        }

        export interface Id extends Text {
            selectName: string;
        }
    }
}
