import type { ExtractPropTypes } from 'vue'
import type { dividerProps } from '@/divider/src'
import type { computedLineStyle, computedTextStyle, computedRootStyle, setDividerHeight } from '../src/divider'
import type { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type'
export interface IDividerState {
height: string
margin: string
lineStyle: IDividerStyle
textStyle: IDividerStyle
rootStyle: IDividerStyle
}
export type IDividerProps = ExtractPropTypes<typeof dividerProps>
export interface IDividerApi {
state: IDividerState
computedLineStyle: ReturnType<typeof computedLineStyle>
computedTextStyle: ReturnType<typeof computedTextStyle>
computedRootStyle: ReturnType<typeof computedRootStyle>
setDividerHeight: ReturnType<typeof setDividerHeight>
}
export type IDividerRenderlessParams = ISharedRenderlessFunctionParams<never> & {
api: IDividerApi
state: IDividerState
props: IDividerProps
}
export type IDividerRenderlessParamUtils = ISharedRenderlessParamUtils<never>
export interface IDividerStyle {
margin?: string | number
height?: string | number
fontSize?: string | number
right?: string | number
left?: string | number
borderLeftStyle?: string | number
borderTopStyle?: string | number
borderTopColor?: string | number
}