import * as React from 'react'; import {StyletronComponent} from 'styletron-react'; import {Override} from '../overrides'; export interface STATE_TYPE { change: 'CHANGE'; } export interface ALIGN { vertical: 'vertical'; horizontal: 'horizontal'; } export type StateReducer = ( stateType: string, nextState: State, currentState: State, event: React.SyntheticEvent, ) => State; export interface State { value?: string; } export interface StatefulContainerProps { overrides?: RadioOverrides & RadioGroupOverrides; children?: React.ReactNode; initialState?: State; stateReducer: StateReducer; onChange?: React.ChangeEventHandler; autoFocus?: boolean; } export class StatefulContainer extends React.Component< StatefulContainerProps, State > { onChange(e: React.ChangeEventHandler): void; stateReducer(type: string, e: React.SyntheticEvent): void; } export interface StatefulRadioGroupProps { overrides?: RadioOverrides & RadioGroupOverrides; children?: React.ReactNode; initialState?: State; autoFocus?: boolean; name?: string; onChange?: React.ChangeEventHandler; align?: 'horizontal' | 'vertical'; } export const StatefulRadioGroup: React.FC; export interface RadioGroupProps { 'aria-describedby'?: string; 'aria-errormessage'?: string; 'aria-label'?: string; 'aria-labelledby'?: string; overrides?: RadioOverrides & RadioGroupOverrides; children?: React.ReactNode; value?: string; disabled?: boolean; required?: boolean; isError?: boolean; error?: boolean; autoFocus?: boolean; align?: 'horizontal' | 'vertical'; name?: string; labelPlacement?: 'top' | 'right' | 'bottom' | 'left'; onChange?: React.ChangeEventHandler; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; } export class RadioGroup extends React.Component {} export interface RadioOverrides { RadioMarkInner?: Override; RadioMarkOuter?: Override; Label?: Override; Root?: Override; Input?: Override; Description?: Override; } export interface RadioGroupOverrides { RadioGroupRoot?: Override; } export interface RadioProps { autoFocus?: boolean; checked?: boolean; children?: React.ReactNode; description?: string; disabled?: boolean; inputRef?: React.Ref; isError?: boolean; error?: boolean; isFocused?: boolean; isFocusVisible?: boolean; labelPlacement?: 'top' | 'right' | 'bottom' | 'left'; name?: string; onChange?: React.ChangeEventHandler; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; onMouseDown?: React.MouseEventHandler; onMouseUp?: React.MouseEventHandler; overrides?: RadioOverrides & RadioGroupOverrides; required?: boolean; value?: string; tabIndex?: string; } export interface RadioState { isActive: boolean; isHovered: boolean; } export class Radio extends React.Component { onMouseEnter(event: React.MouseEvent): void; onMouseLeave(event: React.MouseEvent): void; onMouseDown(event: React.MouseEvent): void; onMouseUp(event: React.MouseEvent): void; onFocus(event: React.FocusEvent): void; onBlur(event: React.FocusEvent): void; } export const StyledRoot: StyletronComponent; export const StyledLabel: StyletronComponent; export const StyledInput: StyletronComponent; export const StyledDescription: StyletronComponent; export const StyledRadioMarkInner: StyletronComponent; export const StyledRadioMarkOuter: StyletronComponent; export const StyledRadioGroupRoot: StyletronComponent; export const STATE_TYPE: STATE_TYPE; export const ALIGN: ALIGN;