import type { Task, CreateTaskInput } from "../types.js";
/**
* Abstract task service interface.
* Implementations must provide async methods for task management.
*/
export interface TaskService {
/**
* List all tasks, optionally filtered by status
* @param status - Optional status filter
* @returns Promise resolving to array of tasks
*/
list(status?: string): Promise<Task[]>;
/**
* Get a single task by ID
* @param id - Task ID
* @returns Promise resolving to task or undefined if not found
*/
get(id: string): Promise<Task | undefined>;
/**
* Create a new task
* @param input - Task creation input
* @returns Promise resolving to the created task
*/
create(input: CreateTaskInput): Promise<Task>;
/**
* Mark a task as completed
* @param id - Task ID to complete
* @returns Promise resolving to the updated task, or undefined if not found
*/
complete(id: string): Promise<Task | undefined>;
/**
* Delete a task
* @param id - Task ID to delete
* @returns Promise resolving to true if deleted, false if not found
*/
delete(id: string): Promise<boolean>;
}