export * from './service.ts';
export * from './types.ts';
import { type CreateTaskParams, type UpdateTaskParams, type ListTasksParams, type ListTasksResult, type Task, type Comment, type Tag, type TaskChangelogResult, type ListCommentsResult, type CreateAttachmentParams, type PresignUploadResponse, type PresignDownloadResponse, type ListAttachmentsResult, type ListUsersResult, type ListProjectsResult, type TaskActivityResult, type TaskActivityParams, type Attachment, type EntityRef } from './service.ts';
import { type Logger } from '@agentuity/client';
import { z } from 'zod';
export declare const TaskClientOptionsSchema: z.ZodObject<{
    apiKey: z.ZodOptional<z.ZodString>;
    url: z.ZodOptional<z.ZodString>;
    orgId: z.ZodOptional<z.ZodString>;
    logger: z.ZodOptional<z.ZodCustom<Logger, Logger>>;
}, z.core.$strip>;
export type TaskClientOptions = z.infer<typeof TaskClientOptionsSchema>;
export declare class TaskClient {
    #private;
    constructor(options?: TaskClientOptions);
    create(params: CreateTaskParams): Promise<Task>;
    get(id: string): Promise<Task | null>;
    list(params?: ListTasksParams): Promise<ListTasksResult>;
    update(id: string, params: UpdateTaskParams): Promise<Task>;
    close(id: string): Promise<Task>;
    softDelete(id: string): Promise<Task>;
    changelog(id: string, params?: {
        limit?: number;
        offset?: number;
    }): Promise<TaskChangelogResult>;
    createComment(taskId: string, body: string, userId: string, author?: EntityRef): Promise<Comment>;
    getComment(commentId: string): Promise<Comment | null>;
    updateComment(commentId: string, body: string): Promise<Comment>;
    deleteComment(commentId: string): Promise<void>;
    listComments(taskId: string, params?: {
        limit?: number;
        offset?: number;
    }): Promise<ListCommentsResult>;
    createTag(name: string, color?: string): Promise<Tag>;
    getTag(tagId: string): Promise<Tag | null>;
    updateTag(tagId: string, name: string, color?: string): Promise<Tag>;
    deleteTag(tagId: string): Promise<void>;
    listTags(): Promise<Tag[]>;
    addTagToTask(taskId: string, tagId: string): Promise<void>;
    removeTagFromTask(taskId: string, tagId: string): Promise<void>;
    listTagsForTask(taskId: string): Promise<Tag[]>;
    uploadAttachment(taskId: string, params: CreateAttachmentParams): Promise<PresignUploadResponse>;
    confirmAttachment(attachmentId: string): Promise<Attachment>;
    downloadAttachment(attachmentId: string): Promise<PresignDownloadResponse>;
    listAttachments(taskId: string): Promise<ListAttachmentsResult>;
    deleteAttachment(attachmentId: string): Promise<void>;
    listUsers(): Promise<ListUsersResult>;
    listProjects(): Promise<ListProjectsResult>;
    getActivity(params?: TaskActivityParams): Promise<TaskActivityResult>;
}
//# sourceMappingURL=index.d.ts.map