import { type AppVersionStatus } from '../ee/apps/types';
import { ContentType as ResourceViewItemType, type ChartSourceType, type SummaryContent } from './content';
import { type DashboardBasicDetails } from './dashboard';
import { type SpaceQuery } from './savedCharts';
import { type Space, type SpaceSummary } from './space';
export { ResourceViewItemType };
export declare enum ResourceItemCategory {
    MOST_POPULAR = "mostPopular",
    RECENTLY_UPDATED = "recentlyUpdated",
    PINNED = "pinned",
    FAVORITES = "favorites",
    VERIFIED = "verified"
}
export type ResourceViewChartItem = {
    type: ResourceViewItemType.CHART;
    data: Pick<SpaceQuery, 'uuid' | 'name' | 'chartType' | 'chartKind' | 'firstViewedAt' | 'views' | 'pinnedListUuid' | 'pinnedListOrder' | 'spaceUuid' | 'description' | 'updatedAt' | 'updatedByUser' | 'validationErrors' | 'verification' | 'slug'> & {
        source?: ChartSourceType;
    };
    category?: ResourceItemCategory;
};
export type ResourceViewDashboardItem = {
    type: ResourceViewItemType.DASHBOARD;
    data: Pick<DashboardBasicDetails, 'uuid' | 'spaceUuid' | 'description' | 'name' | 'views' | 'firstViewedAt' | 'pinnedListUuid' | 'pinnedListOrder' | 'updatedAt' | 'updatedByUser' | 'validationErrors' | 'verification'>;
    category?: ResourceItemCategory;
};
export type ResourceViewSpaceItem = {
    type: ResourceViewItemType.SPACE;
    data: Pick<Space, 'projectUuid' | 'uuid' | 'name' | 'pinnedListUuid' | 'pinnedListOrder' | 'organizationUuid' | 'parentSpaceUuid' | 'path' | 'inheritParentPermissions'> & {
        access: string[];
        accessListLength: number;
        dashboardCount: number;
        chartCount: number;
        childSpaceCount: number;
        appCount: number;
    };
};
export type ResourceViewDataAppItem = {
    type: ResourceViewItemType.DATA_APP;
    data: {
        uuid: string;
        name: string;
        description: string | undefined;
        spaceUuid: string | null;
        createdByUserUuid: string | null;
        updatedAt: Date;
        updatedByUser: {
            userUuid: string;
            firstName: string;
            lastName: string;
        } | null;
        views: number;
        firstViewedAt: Date | null;
        latestVersionNumber: number | null;
        latestVersionStatus: AppVersionStatus | null;
        pinnedListUuid: string | null;
        pinnedListOrder: number | null;
    };
    category?: ResourceItemCategory;
};
type ResourceViewAcceptedItems = ResourceViewSpaceItem['data'] | ResourceViewChartItem['data'] | ResourceViewDashboardItem['data'] | ResourceViewDataAppItem['data'];
export type ResourceViewItem = ResourceViewChartItem | ResourceViewDashboardItem | ResourceViewSpaceItem | ResourceViewDataAppItem;
export declare const isResourceViewItemChart: (item: ResourceViewItem) => item is ResourceViewChartItem;
export declare const isResourceViewItemDashboard: (item: ResourceViewItem) => item is ResourceViewDashboardItem;
export declare const isResourceViewSpaceItem: (item: ResourceViewItem) => item is ResourceViewSpaceItem;
export declare const isResourceViewDataAppItem: (item: ResourceViewItem) => item is ResourceViewDataAppItem;
export declare const wrapResource: <T extends ResourceViewAcceptedItems>(resource: T, type: ResourceViewItemType) => ResourceViewItem;
export declare const wrapResourceView: (resources: ResourceViewAcceptedItems[], type: ResourceViewItemType) => ResourceViewItem[];
export declare const spaceToResourceViewItem: (space: Omit<SpaceSummary, "inheritsFromOrgOrProject">) => ResourceViewSpaceItem["data"];
export type MostPopularAndRecentlyUpdated = {
    mostPopular: (DashboardBasicDetails | SpaceQuery)[];
    recentlyUpdated: (DashboardBasicDetails | SpaceQuery)[];
};
export declare const contentToResourceViewItem: (content: SummaryContent) => ResourceViewItem;
export declare const resourceToContent: (resource: ResourceViewItem) => Pick<DashboardBasicDetails, "updatedAt" | "name" | "description" | "uuid" | "spaceUuid" | "pinnedListUuid" | "pinnedListOrder" | "verification" | "updatedByUser" | "views" | "firstViewedAt" | "validationErrors"> | (Pick<Space, "projectUuid" | "name" | "uuid" | "organizationUuid" | "path" | "pinnedListUuid" | "inheritParentPermissions" | "pinnedListOrder" | "parentSpaceUuid"> & {
    access: string[];
    accessListLength: number;
    dashboardCount: number;
    chartCount: number;
    childSpaceCount: number;
    appCount: number;
}) | {
    uuid: string;
    name: string;
    description: string | undefined;
    spaceUuid: string | null;
    createdByUserUuid: string | null;
    updatedAt: Date;
    updatedByUser: {
        userUuid: string;
        firstName: string;
        lastName: string;
    } | null;
    views: number;
    firstViewedAt: Date | null;
    latestVersionNumber: number | null;
    latestVersionStatus: AppVersionStatus | null;
    pinnedListUuid: string | null;
    pinnedListOrder: number | null;
};
//# sourceMappingURL=resourceViewItem.d.ts.map