import { ApFieldRateProps } from '../interface';
import { CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, CSSProperties, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, DefineComponent } from 'vue';
import { VueTypeValidableDef, VueTypeDef } from '../../../node_modules/vue-types';
import { TriggerType } from '@aplus-frontend/antdv/es/tooltip/abstractTooltipProps';
import { TooltipPlacement, AdjustOverflow } from '@aplus-frontend/antdv/es/tooltip';
import { LiteralUnion, VueNode } from '@aplus-frontend/antdv/es/_util/type';
import { PresetColorType } from '@aplus-frontend/antdv/es/_util/colors';
import { AlignType, BuildInPlacements } from '@aplus-frontend/antdv/es/vc-trigger/interface';
import { Direction } from '@aplus-frontend/antdv/es/config-provider';
import { FocusEventHandler, KeyboardEventHandler } from '@aplus-frontend/antdv/es/_util/EventInterface';
import { FieldMode } from '..';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        character: any;
    }> & {
        character: any;
    };
    refs: {
        rateRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
            prefixCls: StringConstructor;
            count: NumberConstructor;
            value: NumberConstructor;
            allowHalf: {
                type: BooleanConstructor;
                default: any;
            };
            allowClear: {
                type: BooleanConstructor;
                default: any;
            };
            tooltips: PropType<(string | Partial< ExtractPropTypes<{
                title: VueTypeValidableDef<any>;
                trigger: PropType< TriggerType | TriggerType[]>;
                open: {
                    type: BooleanConstructor;
                    default: any;
                };
                visible: {
                    type: BooleanConstructor;
                    default: any;
                };
                placement: PropType<TooltipPlacement>;
                color: PropType<LiteralUnion<PresetColorType>>;
                transitionName: StringConstructor;
                overlayStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                overlayInnerStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                overlayClassName: StringConstructor;
                openClassName: StringConstructor;
                prefixCls: StringConstructor;
                mouseEnterDelay: NumberConstructor;
                mouseLeaveDelay: NumberConstructor;
                getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
                arrowPointAtCenter: {
                    type: BooleanConstructor;
                    default: any;
                };
                arrow: {
                    type: PropType<boolean | {
                        pointAtCenter?: boolean;
                    }>;
                    default: boolean | {
                        pointAtCenter?: boolean;
                    };
                };
                autoAdjustOverflow: {
                    type: PropType<boolean | AdjustOverflow>;
                    default: boolean | AdjustOverflow;
                };
                destroyTooltipOnHide: {
                    type: BooleanConstructor;
                    default: any;
                };
                align: {
                    type: PropType<AlignType>;
                    default: AlignType;
                };
                builtinPlacements: {
                    type: PropType<BuildInPlacements>;
                    default: BuildInPlacements;
                };
                children: ArrayConstructor;
                onVisibleChange: PropType<(vis: boolean) => void>;
                "onUpdate:visible": PropType<(vis: boolean) => void>;
                onOpenChange: PropType<(vis: boolean) => void>;
                "onUpdate:open": PropType<(vis: boolean) => void>;
                mask: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                maskStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                maskTransitionName: StringConstructor;
                maskClosable: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                forceRender: {
                    type: BooleanConstructor;
                    default: boolean;
                };
            }>>)[]>;
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            character: VueTypeValidableDef<any>;
            autofocus: {
                type: BooleanConstructor;
                default: any;
            };
            keyboard: {
                type: BooleanConstructor;
                default: boolean;
            };
            tabindex: VueTypeDef<string | number>;
            direction: PropType<Direction>;
            id: StringConstructor;
            onChange: PropType<(value: number) => void>;
            onHoverChange: PropType<(value: number) => void>;
            'onUpdate:value': PropType<(value: number) => void>;
            onFocus: PropType<FocusEventHandler>;
            onBlur: PropType<FocusEventHandler>;
            onKeydown: PropType<KeyboardEventHandler>;
            size: PropType<"small" | "large" | "middle">;
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
            disabled: boolean;
            autofocus: boolean;
            allowClear: boolean;
            keyboard: boolean;
            allowHalf: boolean;
        }, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        }, Readonly< ExtractPropTypes<{
            prefixCls: StringConstructor;
            count: NumberConstructor;
            value: NumberConstructor;
            allowHalf: {
                type: BooleanConstructor;
                default: any;
            };
            allowClear: {
                type: BooleanConstructor;
                default: any;
            };
            tooltips: PropType<(string | Partial< ExtractPropTypes<{
                title: VueTypeValidableDef<any>;
                trigger: PropType< TriggerType | TriggerType[]>;
                open: {
                    type: BooleanConstructor;
                    default: any;
                };
                visible: {
                    type: BooleanConstructor;
                    default: any;
                };
                placement: PropType<TooltipPlacement>;
                color: PropType<LiteralUnion<PresetColorType>>;
                transitionName: StringConstructor;
                overlayStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                overlayInnerStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                overlayClassName: StringConstructor;
                openClassName: StringConstructor;
                prefixCls: StringConstructor;
                mouseEnterDelay: NumberConstructor;
                mouseLeaveDelay: NumberConstructor;
                getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
                arrowPointAtCenter: {
                    type: BooleanConstructor;
                    default: any;
                };
                arrow: {
                    type: PropType<boolean | {
                        pointAtCenter?: boolean;
                    }>;
                    default: boolean | {
                        pointAtCenter?: boolean;
                    };
                };
                autoAdjustOverflow: {
                    type: PropType<boolean | AdjustOverflow>;
                    default: boolean | AdjustOverflow;
                };
                destroyTooltipOnHide: {
                    type: BooleanConstructor;
                    default: any;
                };
                align: {
                    type: PropType<AlignType>;
                    default: AlignType;
                };
                builtinPlacements: {
                    type: PropType<BuildInPlacements>;
                    default: BuildInPlacements;
                };
                children: ArrayConstructor;
                onVisibleChange: PropType<(vis: boolean) => void>;
                "onUpdate:visible": PropType<(vis: boolean) => void>;
                onOpenChange: PropType<(vis: boolean) => void>;
                "onUpdate:open": PropType<(vis: boolean) => void>;
                mask: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                maskStyle: {
                    type: PropType<CSSProperties>;
                    default: CSSProperties;
                };
                maskTransitionName: StringConstructor;
                maskClosable: {
                    type: BooleanConstructor;
                    default: boolean;
                };
                forceRender: {
                    type: BooleanConstructor;
                    default: boolean;
                };
            }>>)[]>;
            disabled: {
                type: BooleanConstructor;
                default: any;
            };
            character: VueTypeValidableDef<any>;
            autofocus: {
                type: BooleanConstructor;
                default: any;
            };
            keyboard: {
                type: BooleanConstructor;
                default: boolean;
            };
            tabindex: VueTypeDef<string | number>;
            direction: PropType<Direction>;
            id: StringConstructor;
            onChange: PropType<(value: number) => void>;
            onHoverChange: PropType<(value: number) => void>;
            'onUpdate:value': PropType<(value: number) => void>;
            onFocus: PropType<FocusEventHandler>;
            onBlur: PropType<FocusEventHandler>;
            onKeydown: PropType<KeyboardEventHandler>;
            size: PropType<"small" | "large" | "middle">;
        }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
            disabled: boolean;
            autofocus: boolean;
            allowClear: boolean;
            keyboard: boolean;
            allowHalf: boolean;
        }> | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFieldRateProps, {
    blur: () => void;
    focus: () => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    "update:value": (...args: any[]) => void;
}, string, PublicProps, Readonly<ApFieldRateProps> & Readonly<{
    "onUpdate:value"?: ((...args: any[]) => any) | undefined;
}>, {
    mode: FieldMode;
    disabled: boolean;
    autofocus: boolean;
    allowClear: boolean;
    character: any;
    count: number;
    allowHalf: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    rateRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
        prefixCls: StringConstructor;
        count: NumberConstructor;
        value: NumberConstructor;
        allowHalf: {
            type: BooleanConstructor;
            default: any;
        };
        allowClear: {
            type: BooleanConstructor;
            default: any;
        };
        tooltips: PropType<(string | Partial< ExtractPropTypes<{
            title: VueTypeValidableDef<any>;
            trigger: PropType< TriggerType | TriggerType[]>;
            open: {
                type: BooleanConstructor;
                default: any;
            };
            visible: {
                type: BooleanConstructor;
                default: any;
            };
            placement: PropType<TooltipPlacement>;
            color: PropType<LiteralUnion<PresetColorType>>;
            transitionName: StringConstructor;
            overlayStyle: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            overlayInnerStyle: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            overlayClassName: StringConstructor;
            openClassName: StringConstructor;
            prefixCls: StringConstructor;
            mouseEnterDelay: NumberConstructor;
            mouseLeaveDelay: NumberConstructor;
            getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
            arrowPointAtCenter: {
                type: BooleanConstructor;
                default: any;
            };
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter?: boolean;
                }>;
                default: boolean | {
                    pointAtCenter?: boolean;
                };
            };
            autoAdjustOverflow: {
                type: PropType<boolean | AdjustOverflow>;
                default: boolean | AdjustOverflow;
            };
            destroyTooltipOnHide: {
                type: BooleanConstructor;
                default: any;
            };
            align: {
                type: PropType<AlignType>;
                default: AlignType;
            };
            builtinPlacements: {
                type: PropType<BuildInPlacements>;
                default: BuildInPlacements;
            };
            children: ArrayConstructor;
            onVisibleChange: PropType<(vis: boolean) => void>;
            "onUpdate:visible": PropType<(vis: boolean) => void>;
            onOpenChange: PropType<(vis: boolean) => void>;
            "onUpdate:open": PropType<(vis: boolean) => void>;
            mask: {
                type: BooleanConstructor;
                default: boolean;
            };
            maskStyle: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            maskTransitionName: StringConstructor;
            maskClosable: {
                type: BooleanConstructor;
                default: boolean;
            };
            forceRender: {
                type: BooleanConstructor;
                default: boolean;
            };
        }>>)[]>;
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        character: VueTypeValidableDef<any>;
        autofocus: {
            type: BooleanConstructor;
            default: any;
        };
        keyboard: {
            type: BooleanConstructor;
            default: boolean;
        };
        tabindex: VueTypeDef<string | number>;
        direction: PropType<Direction>;
        id: StringConstructor;
        onChange: PropType<(value: number) => void>;
        onHoverChange: PropType<(value: number) => void>;
        'onUpdate:value': PropType<(value: number) => void>;
        onFocus: PropType<FocusEventHandler>;
        onBlur: PropType<FocusEventHandler>;
        onKeydown: PropType<KeyboardEventHandler>;
        size: PropType<"small" | "large" | "middle">;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        disabled: boolean;
        autofocus: boolean;
        allowClear: boolean;
        keyboard: boolean;
        allowHalf: boolean;
    }, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        prefixCls: StringConstructor;
        count: NumberConstructor;
        value: NumberConstructor;
        allowHalf: {
            type: BooleanConstructor;
            default: any;
        };
        allowClear: {
            type: BooleanConstructor;
            default: any;
        };
        tooltips: PropType<(string | Partial< ExtractPropTypes<{
            title: VueTypeValidableDef<any>;
            trigger: PropType< TriggerType | TriggerType[]>;
            open: {
                type: BooleanConstructor;
                default: any;
            };
            visible: {
                type: BooleanConstructor;
                default: any;
            };
            placement: PropType<TooltipPlacement>;
            color: PropType<LiteralUnion<PresetColorType>>;
            transitionName: StringConstructor;
            overlayStyle: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            overlayInnerStyle: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            overlayClassName: StringConstructor;
            openClassName: StringConstructor;
            prefixCls: StringConstructor;
            mouseEnterDelay: NumberConstructor;
            mouseLeaveDelay: NumberConstructor;
            getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
            arrowPointAtCenter: {
                type: BooleanConstructor;
                default: any;
            };
            arrow: {
                type: PropType<boolean | {
                    pointAtCenter?: boolean;
                }>;
                default: boolean | {
                    pointAtCenter?: boolean;
                };
            };
            autoAdjustOverflow: {
                type: PropType<boolean | AdjustOverflow>;
                default: boolean | AdjustOverflow;
            };
            destroyTooltipOnHide: {
                type: BooleanConstructor;
                default: any;
            };
            align: {
                type: PropType<AlignType>;
                default: AlignType;
            };
            builtinPlacements: {
                type: PropType<BuildInPlacements>;
                default: BuildInPlacements;
            };
            children: ArrayConstructor;
            onVisibleChange: PropType<(vis: boolean) => void>;
            "onUpdate:visible": PropType<(vis: boolean) => void>;
            onOpenChange: PropType<(vis: boolean) => void>;
            "onUpdate:open": PropType<(vis: boolean) => void>;
            mask: {
                type: BooleanConstructor;
                default: boolean;
            };
            maskStyle: {
                type: PropType<CSSProperties>;
                default: CSSProperties;
            };
            maskTransitionName: StringConstructor;
            maskClosable: {
                type: BooleanConstructor;
                default: boolean;
            };
            forceRender: {
                type: BooleanConstructor;
                default: boolean;
            };
        }>>)[]>;
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        character: VueTypeValidableDef<any>;
        autofocus: {
            type: BooleanConstructor;
            default: any;
        };
        keyboard: {
            type: BooleanConstructor;
            default: boolean;
        };
        tabindex: VueTypeDef<string | number>;
        direction: PropType<Direction>;
        id: StringConstructor;
        onChange: PropType<(value: number) => void>;
        onHoverChange: PropType<(value: number) => void>;
        'onUpdate:value': PropType<(value: number) => void>;
        onFocus: PropType<FocusEventHandler>;
        onBlur: PropType<FocusEventHandler>;
        onKeydown: PropType<KeyboardEventHandler>;
        size: PropType<"small" | "large" | "middle">;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        disabled: boolean;
        autofocus: boolean;
        allowClear: boolean;
        keyboard: boolean;
        allowHalf: boolean;
    }> | null;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
