import React from 'react';
import { CardGalleryItemProps } from '@wix/design-system';
type RenderItemRawProps = Omit<Partial<CardGalleryItemProps>, 'title' | 'subtitle' | 'size'>;
type GridFoldersItemPresetFullProps<T> = {
    preset: 'full';
    renderItem?: (item: T, index: number) => RenderItemRawProps & {
        title?: React.ReactNode;
        subtitle?: React.ReactNode;
    };
};
type GridFoldersItemPresetTitleProps<T> = {
    preset?: 'title';
    renderItem?: (item: T, index: number) => RenderItemRawProps & {
        title?: React.ReactNode;
        subtitle?: undefined;
    };
};
type GridFoldersItemPresetEmptyProps<T> = {
    preset: 'empty';
    renderItem?: (item: T, index: number) => RenderItemRawProps & {
        title?: undefined;
        subtitle?: undefined;
    };
};
type GridFoldersItemPresetGenericProps<T> = {
    preset?: 'full' | 'title' | 'empty';
    renderItem?: (item: T, index: number) => RenderItemRawProps & {
        title?: React.ReactNode;
        subtitle?: React.ReactNode;
    };
};
type GridFoldersFolderPresetFullProps<T> = {
    folderPreset: 'full';
    renderFolderItem?: (item: T, index: number) => RenderItemRawProps & {
        title?: React.ReactNode;
        subtitle?: React.ReactNode;
    };
};
type GridFoldersFolderPresetTitleProps<T> = {
    folderPreset?: 'title';
    renderFolderItem?: (item: T, index: number) => RenderItemRawProps & {
        title?: React.ReactNode;
        subtitle?: undefined;
    };
};
type GridFoldersFolderPresetGenericProps<T> = {
    folderPreset?: 'full' | 'title';
    renderFolderItem?: (item: T, index: number) => RenderItemRawProps & {
        title?: React.ReactNode;
        subtitle?: React.ReactNode;
    };
};
type GridFoldersItemPresetProps<T> = GridFoldersItemPresetFullProps<T> | GridFoldersItemPresetTitleProps<T> | GridFoldersItemPresetEmptyProps<T> | GridFoldersItemPresetGenericProps<T>;
type GridFoldersFolderPresetProps<T> = GridFoldersFolderPresetFullProps<T> | GridFoldersFolderPresetTitleProps<T> | GridFoldersFolderPresetGenericProps<T>;
export type GridFoldersPresetProps<T1, T2, P> = P & GridFoldersItemPresetProps<T1> & GridFoldersFolderPresetProps<T2>;
export {};
//# sourceMappingURL=GridFolders.types.d.ts.map