import { ComponentProps, ReactNode } from 'react';
import { Colors, DeepPartial, MainSizes } from '../../types';
import { InputTheme } from './themeTypes';
/**
* @name InputLabelPositionsEnum
* @description Enum for different label positions in the BaseInputs component.
* @enum [top, left]
*/
export declare enum InputLabelPositionsEnum {
top = "top",
left = "left"
}
/**
* @name InputLabelPositions
* @description Type for label positions in the BaseInputs component.
* @enum [top, left]
*/
export type InputLabelPositions = keyof typeof InputLabelPositionsEnum;
/**
* @name BaseInputsProps
* @description Base props for input components.
*/
export interface BaseInputsProps {
/**
* @name color
* @description Optional prop to specify the color of the input.
* @default null
* @type Colors
* @enum [primary, secondary, success, danger, warning, info, light, dark, link]
* @example
* ```tsx
*
* ```
*/
color?: Colors;
/**
* @name helperText
* @description Optional prop to provide helper text for the input.
* @default null
* @type ReactNode
* @example
* ```tsx
*
* ```
*/
helperText?: ReactNode;
/**
* @name leftComponent
* @description Optional prop to add a component to the left of the input.Recommended to icons
* @default null
* @type ReactNode
* @example
* ```tsx
* } />
* ```
*/
leftComponent?: ReactNode;
/**
* @name rightComponent
* @description Optional prop to add a component to the right of the input. Recommended to icons
* @default null
* @type ReactNode
* @example
* ```tsx
* } />
* ```
*/
rightComponent?: ReactNode;
/**
* @name size
* @description Optional prop to specify the size of the input.
* @default null
* @type MainSizes
* @enum [xs, sm, md, lg, xl]
* @example
* ```tsx
*
* ```
*/
size?: MainSizes;
/**
* @name theme
* @description Optional prop to change the theme of the input.
* @default {}
* @type DeepPartial
* @example
* ```tsx
*
* ```
*/
theme?: DeepPartial;
/**
* @name border
* @description Optional prop to add a border to the input.
* @default false
* @type boolean
* @example
* ```tsx
*
* ```
*/
border?: boolean;
/**
* @name label
* @description Optional prop to add a label to the input.
* @default null
* @type string
* @example
* ```tsx
*
* ```
*/
label?: string;
/**
* @name labelPosition
* @description Optional prop to specify the position of the label.
* @default top
* @type InputLabelPositions
* @enum [top, left]
* @example
* ```tsx
*
* ```
*/
labelPosition?: InputLabelPositions;
/**
* @name labelClassName
* @description Optional prop to add additional classes to the label.
* @default ''
* @type string
* @example
* ```tsx
*
* ```
*/
labelClassName?: string;
/**
* @name innerClassName
* @description Optional prop to add additional classes to the inner input container.
* @default ''
* @type string
* @example
* ```tsx
*
* ```
*/
innerClassName?: string;
onTextChange?: (text: string) => void;
}
/**
* @name InputProps
* @description Props for the Input component.
* @type BaseInputsProps
* @property addon `ReactNode`
*/
export interface InputProps extends Omit, "ref" | "color" | "size">, BaseInputsProps {
}
//# sourceMappingURL=props.d.ts.map