import * as _$vue from "vue";
import { VNode } from "vue";

//#region src/masonry-wall.vue.d.ts
type NonEmptyArray<T> = [T, ...T[]];
type KeyMapper<T> = (item: T, column: number, row: number, index: number) => string | number | symbol | undefined;
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
  props: _$vue.PublicProps & __VLS_PrettifyLocal<{
    columnWidth?: number | NonEmptyArray<number> | undefined;
    items: T[];
    gap?: number | undefined;
    rtl?: boolean | undefined;
    ssrColumns?: number | undefined;
    scrollContainer?: HTMLElement | null | undefined;
    minColumns?: number | undefined;
    maxColumns?: number | undefined;
    keyMapper?: KeyMapper<T> | undefined;
  } & {
    onRedraw?: () => any;
    onRedrawSkip?: () => any;
  }> & (typeof globalThis extends {
    __VLS_PROPS_FALLBACK: infer P;
  } ? P : {});
  expose: (exposed: {}) => void;
  attrs: any;
  slots: {
    default?: (props: {
      item: T;
      column: number;
      columnCount: number;
      row: number;
      index: number;
    }) => VNode | VNode[] | Element | Element[];
  };
  emit: {
    (event: "redraw"): void;
    (event: "redrawSkip"): void;
  };
}>) => _$vue.VNode & {
  __ctx?: Awaited<typeof __VLS_setup>;
};
declare const _default: typeof __VLS_export;
type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {}; //# sourceMappingURL=masonry-wall.vue.d.ts.map
//#endregion
export { type KeyMapper, _default as MasonryWall, type NonEmptyArray };
//# sourceMappingURL=index.d.mts.map