import { ExtractPropTypes, ComputedRef } from 'vue'; import { labelProps } from '@/label/src'; import { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type.js'; type ILabelProps = ExtractPropTypes; interface ILabelState { label: ComputedRef; type: ComputedRef; color: ComputedRef; size: ComputedRef; labelStyle: ComputedRef; labelClass: ComputedRef; isRequired: ComputedRef; } interface ILabelApi { state: ILabelState; handleClick: (event: MouseEvent) => void; computeLabel: () => string; computeLabelStyle: () => object; computeLabelClass: () => []; } type ILabelRenderlessParams = ISharedRenderlessFunctionParams & { api: ILabelApi; state: ILabelState; props: ILabelProps; }; type ILabelRenderlessParamUtils = ISharedRenderlessParamUtils; export { ILabelApi, ILabelProps, ILabelRenderlessParamUtils, ILabelRenderlessParams, ILabelState };