import React from 'react'; import { DefaultProps, FlowindSize, Selectors } from '../../styles'; import { ForwardRefWithStaticComponents } from '../../utils/forwardRef-with-static-components'; import { InlineInputStylesNames } from '../inline-input'; import { SwitchGroup } from './switch-group/switch-group'; import useStyles, { SwitchStylesParams } from './switch.styles'; export type SwitchStylesNames = Selectors | InlineInputStylesNames; export interface SwitchProps extends DefaultProps, Omit, 'type' | 'size'> { variant?: string; /** Id is used to bind input and label, if not passed unique id will be generated for each input */ id?: string; /** Switch label */ label?: React.ReactNode; /** Inner label when Switch is in unchecked state */ offLabel?: React.ReactNode; /** Inner label when Switch is in checked state */ onLabel?: React.ReactNode; /** Predefined size value */ size?: FlowindSize; /** Key of theme.radius or any valid CSS value to set border-radius, "xl" by default */ radius?: FlowindSize; /** Props spread to wrapper element */ wrapperProps?: Record; /** Icon inside the thumb of switch */ thumbIcon?: React.ReactNode; /** Position of label */ labelPosition?: 'left' | 'right'; /** description, displayed after label */ description?: React.ReactNode; /** Displays error message after input */ error?: React.ReactNode; } type SwitchComponent = ForwardRefWithStaticComponents; export declare const Switch: SwitchComponent; export {};