import type { PropType } from 'vue'; export type InfiniteScrollSide = 'start' | 'end' | 'both'; export type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'; type InfiniteScrollSlot = { side: InfiniteScrollSide; props: Record; }; export declare const makeVInfiniteScrollProps: (defaults?: Defaults | undefined) => { tag: unknown extends Defaults["tag"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable; }; height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable; }; maxHeight: unknown extends Defaults["maxHeight"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["maxHeight"] ? string | number : Defaults["maxHeight"] | NonNullable; }; maxWidth: unknown extends Defaults["maxWidth"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["maxWidth"] ? string | number : Defaults["maxWidth"] | NonNullable; }; minHeight: unknown extends Defaults["minHeight"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["minHeight"] ? string | number : Defaults["minHeight"] | NonNullable; }; minWidth: unknown extends Defaults["minWidth"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["minWidth"] ? string | number : Defaults["minWidth"] | NonNullable; }; width: unknown extends Defaults["width"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["width"] ? string | number : Defaults["width"] | NonNullable; }; color: unknown extends Defaults["color"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["color"] ? string : string | Defaults["color"]; }; direction: unknown extends Defaults["direction"] ? { type: PropType<'vertical' | 'horizontal'>; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType<'vertical' | 'horizontal'>; default: string; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["direction"] ? "horizontal" | "vertical" : Defaults["direction"] | NonNullable<"horizontal" | "vertical">; }; side: unknown extends Defaults["side"] ? { type: PropType; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType; default: string; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["side"] ? InfiniteScrollSide : Defaults["side"] | NonNullable; }; mode: unknown extends Defaults["mode"] ? { type: PropType<'intersect' | 'manual'>; default: string; validator: (v: any) => boolean; } : Omit<{ type: PropType<'intersect' | 'manual'>; default: string; validator: (v: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["mode"] ? "intersect" | "manual" : Defaults["mode"] | NonNullable<"intersect" | "manual">; }; margin: unknown extends Defaults["margin"] ? (NumberConstructor | StringConstructor)[] : { type: PropType; default: unknown extends Defaults["margin"] ? string | number : Defaults["margin"] | NonNullable; }; loadMoreText: unknown extends Defaults["loadMoreText"] ? { type: StringConstructor; default: string; } : Omit<{ type: StringConstructor; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["loadMoreText"] ? string : string | Defaults["loadMoreText"]; }; emptyText: unknown extends Defaults["emptyText"] ? { type: StringConstructor; default: string; } : Omit<{ type: StringConstructor; default: string; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["emptyText"] ? string : string | Defaults["emptyText"]; }; }; export declare const VInfiniteScrollIntersect: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins; required: true; }; rootMargin: StringConstructor; }>> & { onIntersect?: ((side: InfiniteScrollSide, isIntersecting: boolean) => any) | undefined; }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true; }, import("vue").PublicProps, {}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly; required: true; }; rootMargin: StringConstructor; }>> & { onIntersect?: ((side: InfiniteScrollSide, isIntersecting: boolean) => any) | undefined; }, {}, {}, {}, {}, {}>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase; required: true; }; rootMargin: StringConstructor; }>> & { onIntersect?: ((side: InfiniteScrollSide, isIntersecting: boolean) => any) | undefined; }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true; }, string, {}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{ side: { type: PropType; required: true; }; rootMargin: StringConstructor; }, import("vue").ExtractPropTypes<{ side: { type: PropType; required: true; }; rootMargin: StringConstructor; }>>; export declare const VInfiniteScroll: { new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{ tag: string | import("../../util/index.js").JSXComponent; direction: "horizontal" | "vertical"; side: InfiniteScrollSide; mode: "intersect" | "manual"; loadMoreText: string; emptyText: string; } & { height?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; width?: string | number | undefined; color?: string | undefined; margin?: string | number | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; loading?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; error?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; empty?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; 'load-more'?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; loading?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; error?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; empty?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; 'load-more'?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; "v-slot:empty"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:error"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:load-more"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:loading"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } & { onLoad?: ((options: { side: InfiniteScrollSide; done: (status: InfiniteScrollStatus) => void; }) => any) | undefined; }, { reset: (side?: InfiniteScrollSide) => void; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { load: (options: { side: InfiniteScrollSide; done: (status: InfiniteScrollStatus) => void; }) => true; }, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, { tag: string | import("../../util/index.js").JSXComponent; direction: "horizontal" | "vertical"; side: InfiniteScrollSide; mode: "intersect" | "manual"; loadMoreText: string; emptyText: string; }, true, {}, import("vue").SlotsType import("vue").VNode[]; loading: (arg: InfiniteScrollSlot) => import("vue").VNode[]; error: (arg: InfiniteScrollSlot) => import("vue").VNode[]; empty: (arg: InfiniteScrollSlot) => import("vue").VNode[]; 'load-more': (arg: InfiniteScrollSlot) => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, { tag: string | import("../../util/index.js").JSXComponent; direction: "horizontal" | "vertical"; side: InfiniteScrollSide; mode: "intersect" | "manual"; loadMoreText: string; emptyText: string; } & { height?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; width?: string | number | undefined; color?: string | undefined; margin?: string | number | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; loading?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; error?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; empty?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; 'load-more'?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; loading?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; error?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; empty?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; 'load-more'?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; "v-slot:empty"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:error"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:load-more"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:loading"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } & { onLoad?: ((options: { side: InfiniteScrollSide; done: (status: InfiniteScrollStatus) => void; }) => any) | undefined; }, { reset: (side?: InfiniteScrollSide) => void; }, {}, {}, {}, { tag: string | import("../../util/index.js").JSXComponent; direction: "horizontal" | "vertical"; side: InfiniteScrollSide; mode: "intersect" | "manual"; loadMoreText: string; emptyText: string; }>; __isFragment?: never; __isTeleport?: never; __isSuspense?: never; } & import("vue").ComponentOptionsBase<{ tag: string | import("../../util/index.js").JSXComponent; direction: "horizontal" | "vertical"; side: InfiniteScrollSide; mode: "intersect" | "manual"; loadMoreText: string; emptyText: string; } & { height?: string | number | undefined; maxHeight?: string | number | undefined; maxWidth?: string | number | undefined; minHeight?: string | number | undefined; minWidth?: string | number | undefined; width?: string | number | undefined; color?: string | undefined; margin?: string | number | undefined; } & { $children?: { default?: (() => import("vue").VNodeChild) | undefined; loading?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; error?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; empty?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; 'load-more'?: ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } | { $stable?: boolean; } | (() => import("vue").VNodeChild) | import("vue").VNodeChild; 'v-slots'?: { default?: false | (() => import("vue").VNodeChild) | undefined; loading?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; error?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; empty?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; 'load-more'?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } | undefined; } & { "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined; "v-slot:empty"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:error"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:load-more"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; "v-slot:loading"?: false | ((arg: InfiniteScrollSlot) => import("vue").VNodeChild) | undefined; } & { onLoad?: ((options: { side: InfiniteScrollSide; done: (status: InfiniteScrollStatus) => void; }) => any) | undefined; }, { reset: (side?: InfiniteScrollSide) => void; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { load: (options: { side: InfiniteScrollSide; done: (status: InfiniteScrollStatus) => void; }) => true; }, string, { tag: string | import("../../util/index.js").JSXComponent; direction: "horizontal" | "vertical"; side: InfiniteScrollSide; mode: "intersect" | "manual"; loadMoreText: string; emptyText: string; }, {}, string, import("vue").SlotsType import("vue").VNode[]; loading: (arg: InfiniteScrollSlot) => import("vue").VNode[]; error: (arg: InfiniteScrollSlot) => import("vue").VNode[]; empty: (arg: InfiniteScrollSlot) => import("vue").VNode[]; 'load-more': (arg: InfiniteScrollSlot) => import("vue").VNode[]; }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{ tag: { type: PropType; default: string; }; height: (NumberConstructor | StringConstructor)[]; maxHeight: (NumberConstructor | StringConstructor)[]; maxWidth: (NumberConstructor | StringConstructor)[]; minHeight: (NumberConstructor | StringConstructor)[]; minWidth: (NumberConstructor | StringConstructor)[]; width: (NumberConstructor | StringConstructor)[]; color: StringConstructor; direction: { type: PropType<'vertical' | 'horizontal'>; default: string; validator: (v: any) => boolean; }; side: { type: PropType; default: string; validator: (v: any) => boolean; }; mode: { type: PropType<'intersect' | 'manual'>; default: string; validator: (v: any) => boolean; }; margin: (NumberConstructor | StringConstructor)[]; loadMoreText: { type: StringConstructor; default: string; }; emptyText: { type: StringConstructor; default: string; }; }, import("vue").ExtractPropTypes<{ tag: { type: PropType; default: string; }; height: (NumberConstructor | StringConstructor)[]; maxHeight: (NumberConstructor | StringConstructor)[]; maxWidth: (NumberConstructor | StringConstructor)[]; minHeight: (NumberConstructor | StringConstructor)[]; minWidth: (NumberConstructor | StringConstructor)[]; width: (NumberConstructor | StringConstructor)[]; color: StringConstructor; direction: { type: PropType<'vertical' | 'horizontal'>; default: string; validator: (v: any) => boolean; }; side: { type: PropType; default: string; validator: (v: any) => boolean; }; mode: { type: PropType<'intersect' | 'manual'>; default: string; validator: (v: any) => boolean; }; margin: (NumberConstructor | StringConstructor)[]; loadMoreText: { type: StringConstructor; default: string; }; emptyText: { type: StringConstructor; default: string; }; }>>; export type VInfiniteScroll = InstanceType;