import type { ComputedRef, ExtractPropTypes } from 'vue'
import type { floatButtonProps } from '@/float-button/src'
import type { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type'
import type { clearTimer, handleClick } from '../src/float-button'
export interface IFloatButtonState {
timer: number
disabled: boolean
open: Boolean
show: Boolean
hasEvent: Boolean
formDisabled: ComputedRef<boolean>
buttonDisabled: ComputedRef<boolean>
}
export type IFloatButtonRenderlessParams = ISharedRenderlessFunctionParams<never> & {
state: IFloatButtonState
props: IFloatButtonProps
}
export type IFloatButtonProps = ExtractPropTypes<typeof floatButtonProps>
export interface IFloatButtonApi {
state: IFloatButtonState
clearTimer: ReturnType<typeof clearTimer>
handleClick: ReturnType<typeof handleClick>
}
export type IFloatButtonRenderlessParamUtils = ISharedRenderlessParamUtils<never>