import { TodoConfig, GetProjectTasksArgs, GetTaskByIdArgs, SubmitTaskFeedbackArgs, CreateTaskArgs, UpdateTaskArgs, GetProjectInfoArgs, Task, Project } from './types.js'; declare module 'axios' { interface InternalAxiosRequestConfig { metadata?: { requestId: string; startTime: number; }; } } export declare class TodoApiClient { private client; private config; private retryConfig; private lastRequestTime; private minRequestInterval; constructor(config: TodoConfig); private setupInterceptors; private handleApiError; private sleep; private shouldRetry; private enforceRequestInterval; private executeWithRetry; /** * Get all pending tasks for a project by project name */ getProjectTasksByName(args: GetProjectTasksArgs): Promise; /** * Get detailed task information by task ID */ getTaskById(args: GetTaskByIdArgs): Promise; /** * Submit feedback for a completed or in-progress task */ submitTaskFeedback(args: SubmitTaskFeedbackArgs): Promise; /** * Create a new task in the specified project */ createTask(args: CreateTaskArgs): Promise; /** * Update an existing task */ updateTask(args: UpdateTaskArgs): Promise; /** * Get detailed project information */ getProjectInfo(args: GetProjectInfoArgs): Promise; /** * List all projects that the current user has access to */ listUserProjects(args: any): Promise; /** * Wait for new tasks in a project */ waitForNewTasks(args: any): Promise; /** * Wait for human feedback on an interactive task */ waitForHumanFeedback(taskId: number, sessionId: string, timeoutSeconds?: number, pollIntervalSeconds?: number): Promise; /** * Submit human feedback for an interactive task */ submitHumanFeedback(taskId: number, sessionId: string, feedbackContent: string, action: 'complete' | 'continue'): Promise; /** * Get interaction status for a task */ getInteractionStatus(taskId: number): Promise; /** * Get interaction history for a task */ getInteractionHistory(taskId: number): Promise; /** * Test connection to the Todo API */ testConnection(): Promise; private getVersion; /** * Normalize URL path to ensure proper joining with baseURL * Removes leading slash to avoid double slashes when joining with baseURL that ends with / */ private normalizePath; } //# sourceMappingURL=api-client.d.ts.map