import React from 'react'; import PropTypes from 'prop-types'; export declare type VerticalSwitcherOptionIconPosition = 'left' | 'right'; export declare type VerticalSwitcherSize = 'l' | 'm' | 's' | 'xs'; export declare type VerticalSwitcherTheme = 'light' | 'dark'; export declare type VerticalSwitcherMode = 'rock' | 'classic'; export declare type VerticalSwitcherOption = { label?: React.ReactNode; value: OptionsValueType; /** Additional icon */ icon?: React.ReactNode; /** Optional a11y label for the option. May be useful for icon-only options. */ 'aria-label'?: string; }; export declare type VerticalSwitcherOptionForDocs = VerticalSwitcherOption; interface VerticalSwitcherExplicitProps { /** Current selected value */ value: ValueType; /** Array of options */ options?: VerticalSwitcherOption[]; onChange: (value: OptionsValueType) => void; className?: string; theme?: VerticalSwitcherTheme; size?: VerticalSwitcherSize; /** Appearance mode */ mode?: VerticalSwitcherMode; disabled?: boolean; /** Identifier for e2e tests */ 'data-e2e'?: string; /** **Works only if the `icon` on options is present.** Additional icon position. */ iconPosition?: VerticalSwitcherOptionIconPosition; /** CSS style object */ style?: React.CSSProperties; /** Optional a11y label for the switcher. Recommended to use either that or `aria-labelledby`. */ 'aria-label'?: string; /** Optional a11y label reference for the switcher. Recommended to use either that or `aria-label`. */ 'aria-labelledby'?: string; /** Optional name of all `input[type="radio"]` children. if not set, it will fallback to a randomly generated name. */ name?: string; } export declare type VerticalSwitcherProps = VerticalSwitcherExplicitProps & Omit, keyof VerticalSwitcherExplicitProps>; export declare function VerticalSwitcher({ className, theme: themeFromProps, size, disabled, options: rawOptions, value: switcherValue, mode, iconPosition, onChange, style, name, ...rest }: VerticalSwitcherProps): JSX.Element; export declare namespace VerticalSwitcher { var propTypes: { options: PropTypes.Validator; value: PropTypes.Validator; icon: PropTypes.Requireable; }>[]>; onChange: PropTypes.Validator<(...args: any[]) => any>; value: PropTypes.Validator; className: PropTypes.Requireable; size: PropTypes.Requireable; theme: PropTypes.Requireable; iconPosition: PropTypes.Requireable; disabled: PropTypes.Requireable; style: PropTypes.Requireable; 'data-e2e': PropTypes.Requireable; }; } export {};