import type { ExtractPropTypes } from 'vue'
import type { radioGroupProps } from '@/radio-group/src'
import type { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type'
import type { mounted, handleKeydown } from '../src/radio-group'
export interface IRadioGroupState {
radioGroupSize: IRadioGroupProps['size']
tag: string
activeStyle: string | undefined
}
export type IRadioGroupProps = ExtractPropTypes<typeof radioGroupProps>
export type IRadioGroupRenderlessParams = ISharedRenderlessFunctionParams<never> & {
state: IRadioGroupState
props: IRadioGroupProps
}
export interface IRadioGroupApi {
state: IRadioGroupState
dispatch: ISharedRenderlessParamUtils<never>['dispatch']
onMounted: ReturnType<typeof mounted>
handleKeydown: ReturnType<typeof handleKeydown>
}
export type IRadioGroupRenderlessParamUtils = ISharedRenderlessParamUtils<never>