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"
}
export type ResourceViewChartItem = {
    type: ResourceViewItemType.CHART;
    data: Pick<SpaceQuery, 'uuid' | 'name' | 'chartType' | 'chartKind' | 'firstViewedAt' | 'views' | 'pinnedListUuid' | 'pinnedListOrder' | 'spaceUuid' | 'description' | 'updatedAt' | 'updatedByUser' | 'validationErrors' | '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'>;
    category?: ResourceItemCategory;
};
export type ResourceViewSpaceItem = {
    type: ResourceViewItemType.SPACE;
    data: Pick<Space, 'projectUuid' | 'uuid' | 'name' | 'isPrivate' | 'pinnedListUuid' | 'pinnedListOrder' | 'organizationUuid' | 'parentSpaceUuid' | 'path'> & {
        access: string[];
        accessListLength: number;
        dashboardCount: number;
        chartCount: number;
    };
};
type ResourceViewAcceptedItems = ResourceViewSpaceItem['data'] | ResourceViewChartItem['data'] | ResourceViewDashboardItem['data'];
export type ResourceViewItem = ResourceViewChartItem | ResourceViewDashboardItem | ResourceViewSpaceItem;
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 wrapResource: <T extends ResourceViewAcceptedItems>(resource: T, type: ResourceViewItemType) => ResourceViewItem;
export declare const wrapResourceView: (resources: ResourceViewAcceptedItems[], type: ResourceViewItemType) => ResourceViewItem[];
export declare const spaceToResourceViewItem: (space: SpaceSummary) => 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" | "updatedByUser" | "views" | "firstViewedAt" | "validationErrors"> | (Pick<Space, "projectUuid" | "name" | "path" | "uuid" | "organizationUuid" | "pinnedListUuid" | "isPrivate" | "pinnedListOrder" | "parentSpaceUuid"> & {
    access: string[];
    accessListLength: number;
    dashboardCount: number;
    chartCount: number;
});
//# sourceMappingURL=resourceViewItem.d.ts.map