import { ExtractPropTypes, HTMLAttributes, PropType, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { MouseEventHandler } from '../_util/EventInterface';
import { Key, VueNode } from '../_util/type';
import { default as RawItem } from './RawItem';
import { VueTypeValidableDef } from 'vue-types';
declare const RESPONSIVE: "responsive";
declare const INVALIDATE: "invalidate";
declare const overflowProps: () => {
    id: StringConstructor;
    prefixCls: StringConstructor;
    data: ArrayConstructor;
    itemKey: PropType<Key | ((item: any) => Key)>;
    /** Used for `responsive`. It will limit render node to avoid perf issue */
    itemWidth: {
        type: NumberConstructor;
        default: number;
    };
    renderItem: PropType<(item: any) => VueNode>;
    renderRawItem: PropType<(item: any, index: number) => VueNode>;
    maxCount: PropType<number | typeof RESPONSIVE | typeof INVALIDATE>;
    renderRest: PropType<(items: any[]) => VueNode>;
    renderRawRest: PropType<(items: any[]) => VueNode>;
    suffix: VueTypeValidableDef<any>;
    component: StringConstructor;
    itemComponent: VueTypeValidableDef<any>;
    onVisibleChange: PropType<(visibleCount: number) => void>;
    /** When set to `full`, ssr will render full items by default and remove at client side */
    ssr: PropType<"full">;
    onMousedown: PropType<MouseEventHandler>;
    role: StringConstructor;
};
type InterOverflowProps = Partial<ExtractPropTypes<ReturnType<typeof overflowProps>>>;
export type OverflowProps = HTMLAttributes & InterOverflowProps;
declare const Overflow: DefineComponent<ExtractPropTypes<{
    id: StringConstructor;
    prefixCls: StringConstructor;
    data: ArrayConstructor;
    itemKey: PropType<Key | ((item: any) => Key)>;
    /** Used for `responsive`. It will limit render node to avoid perf issue */
    itemWidth: {
        type: NumberConstructor;
        default: number;
    };
    renderItem: PropType<(item: any) => VueNode>;
    renderRawItem: PropType<(item: any, index: number) => VueNode>;
    maxCount: PropType<number | typeof RESPONSIVE | typeof INVALIDATE>;
    renderRest: PropType<(items: any[]) => VueNode>;
    renderRawRest: PropType<(items: any[]) => VueNode>;
    suffix: VueTypeValidableDef<any>;
    component: StringConstructor;
    itemComponent: VueTypeValidableDef<any>;
    onVisibleChange: PropType<(visibleCount: number) => void>;
    /** When set to `full`, ssr will render full items by default and remove at client side */
    ssr: PropType<"full">;
    onMousedown: PropType<MouseEventHandler>;
    role: StringConstructor;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, "visibleChange"[], "visibleChange", PublicProps, Readonly<ExtractPropTypes<{
    id: StringConstructor;
    prefixCls: StringConstructor;
    data: ArrayConstructor;
    itemKey: PropType<Key | ((item: any) => Key)>;
    /** Used for `responsive`. It will limit render node to avoid perf issue */
    itemWidth: {
        type: NumberConstructor;
        default: number;
    };
    renderItem: PropType<(item: any) => VueNode>;
    renderRawItem: PropType<(item: any, index: number) => VueNode>;
    maxCount: PropType<number | typeof RESPONSIVE | typeof INVALIDATE>;
    renderRest: PropType<(items: any[]) => VueNode>;
    renderRawRest: PropType<(items: any[]) => VueNode>;
    suffix: VueTypeValidableDef<any>;
    component: StringConstructor;
    itemComponent: VueTypeValidableDef<any>;
    onVisibleChange: PropType<(visibleCount: number) => void>;
    /** When set to `full`, ssr will render full items by default and remove at client side */
    ssr: PropType<"full">;
    onMousedown: PropType<MouseEventHandler>;
    role: StringConstructor;
}>> & Readonly<{
    onVisibleChange?: ((...args: any[]) => any) | undefined;
}>, {
    itemWidth: number;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
declare const _default: typeof Overflow & {
    readonly Item: typeof RawItem;
    readonly RESPONSIVE: typeof RESPONSIVE;
    readonly INVALIDATE: typeof INVALIDATE;
};
export default _default;
