import { Result } from "@webiny/feature/api"; import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js"; import { MoveEntryToBinUseCase as UseCaseAbstraction } from "./abstractions.js"; import { MoveEntryToBinRepository } from "./abstractions.js"; import { AccessControl } from "../../../features/shared/abstractions.js"; import { GetLatestRevisionByEntryIdUseCase } from "../../../features/contentEntry/GetLatestRevisionByEntryId/index.js"; import type { CmsModel } from "../../../types/index.js"; import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js"; /** * MoveEntryToBinUseCase - Orchestrates soft deletion of an entry (move to bin). * * Responsibilities: * - Apply access control * - Get the entry to delete by ID * - Mark entry as deleted (wbyDeleted = true) * - Update deletion metadata * - Publish domain events with permanent: false * - Delegate to repository for storage operations */ declare class MoveEntryToBinUseCaseImpl implements UseCaseAbstraction.Interface { private repository; private accessControl; private getLatestRevision; private identityContext; private eventPublisher; constructor(repository: MoveEntryToBinRepository.Interface, accessControl: AccessControl.Interface, getLatestRevision: GetLatestRevisionByEntryIdUseCase.Interface, identityContext: IdentityContext.Interface, eventPublisher: EventPublisher.Interface); execute(model: CmsModel, id: string): Promise>; } export declare const MoveEntryToBinUseCase: import("@webiny/di").Implementation; export {};