import { type ServiceResult } from '../models/service-result.js'; import { ProfileRequestService } from '../services/ProfileRequestService.js'; import type { ProfileRequestDeleteResult } from '../models/profile-request-types.js'; /** * Options for the profile request delete operation. */ export type ProfileRequestDeleteOperationOptions = { /** Delete all deletable requests (canceled or rejected) */ all?: boolean; /** Delete specific request IDs (mutually exclusive with `all`) */ requestIds?: string[]; /** Preview what would be deleted without executing */ dryRun?: boolean; /** Skip confirmation prompt */ noPrompt?: boolean; /** Callback when deletable requests are found */ onDeletableFound?: (count: number) => void; /** Callback for user confirmation; return false to abort */ onConfirm?: (count: number) => Promise; }; /** * Error codes for profile request delete operations. * Re-exported from ServiceErrorCodes for convenience. */ export declare const ProfileRequestDeleteErrorCodes: { readonly DELETE_FAILED: "E4906"; readonly INVALID_IDS: "E4903"; readonly NO_DELETABLE: "E4908"; readonly PARTIAL_FAILURE: "E4909"; }; /** * Orchestrates deletion of profiling requests. * * Delegates to ProfileRequestService for the actual delete logic. * Manages user-facing concerns: confirmation prompts, dry-run previews, * and timing metadata. * * @example * ```typescript * const operation = new ProfileRequestDeleteOperation(profileRequestService); * const result = await operation.execute({ all: true, dryRun: true }); * ``` */ export declare class ProfileRequestDeleteOperation { private readonly profileRequestService; private readonly logger?; constructor(profileRequestService: ProfileRequestService, logger?: Console | undefined); /** * Creates the empty delete result structure. */ private static emptyResult; /** * Executes the profile request delete operation. * * @param options - Delete operation options * @returns ServiceResult containing the delete outcome */ execute(options: ProfileRequestDeleteOperationOptions): Promise>; /** * Prompts for confirmation then executes the actual deletion. * Extracted to keep execute() within cyclomatic complexity limits. */ private executeWithConfirmation; }