import type { DatabaseClient } from '../../../../../providers/database/client';
import type { EntityDtoSchema } from '../../../schemas/dto-schemas';
import type { Filter } from '../../../../../providers/database/pagination/types';
import type { CreateEntityParams } from '../types';
import type { EntityReadModelSchema } from '../../../schemas/read-model-schemas';
import type { ScorecardsStatus } from '../../../entities/types';
export declare class EntitiesWriteRepository {
    #private;
    constructor(db: DatabaseClient, organizationId: string, projectId: string);
    createEntity({ entity, source, fileHash, sourceFile, isRootEntity, isDeleted, rbacTeams, errorOnSkip, revision }: CreateEntityParams): Promise<EntityReadModelSchema | null>;
    updateEntity(incomingEntity: Partial<EntityDtoSchema>, entityToBeUpdated: EntityReadModelSchema): Promise<EntityReadModelSchema | null>;
    setEntitiesAsOutdated(filter: Filter): Promise<void>;
    softDeleteEntitiesWithRelations({ filter, revision, fileHash }: {
        filter: Filter;
        revision: string;
        fileHash: string;
    }): Promise<void>;
    deleteEntity(entityToBeRemoved: EntityReadModelSchema): Promise<string | null>;
    /**
     * Deletes entities based on a filter.
     * If the entity is current or default version, we need to promote the different version as current and default.
     */
    deleteEntities(filter: Filter): Promise<boolean>;
    updateEntityScorecardsStatus(entityId: string, status: ScorecardsStatus): Promise<boolean>;
    updateEntityScorecardsStatusIfCalculating(entityId: string, status: Extract<ScorecardsStatus, 'UP_TO_DATE' | 'OUTDATED'>): Promise<boolean>;
}
//# sourceMappingURL=entities-write-repository.d.ts.map