import { FolderRepository, ProjectRepository, SharedWorkflowRepository, WorkflowRepository } from '@n8n/db';
import { UserFavoriteRepository } from './database/repositories/user-favorite.repository';
import { DataTableRepository } from '../../modules/data-table/data-table.repository';
import type { FavoriteResourceType } from '@n8n/api-types';
export declare class FavoritesService {
    private readonly userFavoriteRepository;
    private readonly workflowRepository;
    private readonly projectRepository;
    private readonly sharedWorkflowRepository;
    private readonly dataTableRepository;
    private readonly folderRepository;
    private readonly MAX_FAVORITES;
    constructor(userFavoriteRepository: UserFavoriteRepository, workflowRepository: WorkflowRepository, projectRepository: ProjectRepository, sharedWorkflowRepository: SharedWorkflowRepository, dataTableRepository: DataTableRepository, folderRepository: FolderRepository);
    getEnrichedFavorites(userId: string): Promise<(import("./database/entities/user-favorite.entity").UserFavorite & {
        resourceName: string;
        resourceProjectId?: string;
    })[]>;
    addFavorite(userId: string, resourceId: string, resourceType: FavoriteResourceType): Promise<import("./database/entities/user-favorite.entity").UserFavorite>;
    private assertResourceExists;
    removeFavorite(userId: string, resourceId: string, resourceType: FavoriteResourceType): Promise<void>;
    deleteByResource(resourceId: string, resourceType: FavoriteResourceType): Promise<void>;
    deleteByResourceIds(resourceIds: string[], resourceType: FavoriteResourceType): Promise<void>;
}
