import { TaskRequest, TaskResponse } from '../types/performer'; /** * IWorker interface that users must implement to handle tasks * This mirrors the Go IWorker interface pattern */ export interface IWorker { /** * Validate a task before execution * @param task The task request to validate * @throws TaskValidationError if task is invalid */ validateTask(task: TaskRequest): Promise; /** * Handle and execute a task * @param task The task request to handle * @returns The task response with result * @throws TaskExecutionError if task execution fails */ handleTask(task: TaskRequest): Promise; } /** * Abstract base class for Workers that provides common functionality * Users can extend this class for convenience */ export declare abstract class BaseWorker implements IWorker { /** * Default validation - can be overridden by subclasses * @param task The task request to validate */ validateTask(task: TaskRequest): Promise; /** * Handle task - can be overridden in two ways: * 1. Override this method for full TaskRequest/TaskResponse handling * 2. Override handleTask(input) for simplified payload handling */ handleTask(task: TaskRequest): Promise; /** * Simplified task handler - override this for easy development * @param input Parsed input from task payload * @returns Result to be encoded and returned */ handleSimpleTask(input: any): Promise; /** * Helper method to create a task response * @param taskId The task ID * @param result The result as bytes * @returns TaskResponse object */ protected createResponse(taskId: string, result: Uint8Array): TaskResponse; /** * Parse payload from bytes to JavaScript object * @param payload The raw payload bytes * @returns Parsed object */ protected parsePayload(payload: Uint8Array): any; /** * Encode result to bytes * @param result The result to encode * @returns Encoded bytes */ protected encodePayload(result: any): Uint8Array; /** * Simple start method for one-line usage */ start(port?: number): Promise; } /** * Simple worker implementation for testing and examples */ export declare class EchoWorker extends BaseWorker { /** * Echo worker that returns the input payload as result * @param task The task request * @returns The task response with the same payload */ handleTask(task: TaskRequest): Promise; } //# sourceMappingURL=iWorker.d.ts.map