/** * Bulk Command * Generic abstraction for executing multiple commands as a single operation * Uses Composite pattern to wrap array of EditorCommand instances */ import { EditorCommand } from '../CommandManager'; /** * BulkCommand - Wraps multiple commands into single undo/redo operation * * This is a generic command wrapper that allows any type of EditorCommand * to be executed in bulk. Useful for operations like deleting, duplicating, * or modifying multiple entities/parts at once. * * @example * const deleteCommands = entities.map(eid => new DeleteEntityCommand(ctx, eid)); * const bulkDelete = new BulkCommand(deleteCommands, 'Delete 5 Entities'); * commandManager.execute(bulkDelete); */ export declare class BulkCommand implements EditorCommand { private commands; private operationName; description: string; constructor(commands: EditorCommand[], operationName: string); execute(): void; undo(): void; redo(): void; /** * Get the wrapped commands */ getCommands(): EditorCommand[]; /** * Get the number of commands in this bulk operation */ getCommandCount(): number; } /** * Type-safe factory function for creating bulk commands * * @param items - Array of items to create commands for * @param commandFactory - Factory function that creates a command for each item * @param operationName - Description for the bulk operation * @returns BulkCommand instance * * @example * const bulkDelete = createBulkCommand( * selectedEntities, * (eid) => new DeleteEntityCommand(ctx, eid), * `Delete ${selectedEntities.length} Entities` * ); */ export declare function createBulkCommand(items: any[], commandFactory: (item: any) => T, operationName: string): BulkCommand; //# sourceMappingURL=BulkCommand.d.ts.map