import { TodoistApi } from '@doist/todoist-sdk'; export declare const RESPONSIBLE_USER_FILTERING: readonly ["assigned", "unassignedOrMe", "all"]; export type ResponsibleUserFiltering = (typeof RESPONSIBLE_USER_FILTERING)[number]; /** * Resolves a responsible user name/email to user ID and email. * @param client - Todoist API client * @param responsibleUser - User identifier (can be user ID, name, or email) * @returns Object with userId and email, or undefined if not provided * @throws Error if user cannot be found */ export declare function resolveResponsibleUser(client: TodoistApi, responsibleUser: string | undefined): Promise<{ userId: string; email: string; } | undefined>; /** * Appends a filter component to a query string with proper ' & ' separator. * @param query - The existing query string * @param filterComponent - The filter component to append * @returns The updated query string */ export declare function appendToQuery(query: string, filterComponent: string): string; /** * Builds a query filter string for responsible user filtering that can be appended to a Todoist filter query. * @param resolvedAssigneeId - The resolved assignee ID (if provided) * @param assigneeEmail - The assignee email (if provided) * @param currentUserId - The current authenticated user's ID * @param responsibleUserFiltering - The filtering mode ('assigned', 'unassignedOrMe', 'all') * @returns Query filter string (e.g., "assigned to: email@example.com" or "!assigned to: others") */ export declare function buildResponsibleUserQueryFilter({ resolvedAssigneeId, assigneeEmail, currentUserId, responsibleUserFiltering, }: { resolvedAssigneeId: string | undefined; assigneeEmail: string | undefined; currentUserId?: string; responsibleUserFiltering?: ResponsibleUserFiltering; }): string; /** * Filters tasks based on responsible user logic: * - If resolvedAssigneeId is another user: returns only tasks assigned to that user * - Otherwise: returns only unassigned tasks or tasks assigned to current user * @param tasks - Array of tasks to filter (must have responsibleUid property) * @param resolvedAssigneeId - The resolved assignee ID to filter by (optional) * @param currentUserId - The current authenticated user's ID * @returns Filtered array of tasks */ export declare function filterTasksByResponsibleUser({ tasks, resolvedAssigneeId, currentUserId, responsibleUserFiltering, }: { tasks: T[]; resolvedAssigneeId: string | undefined; currentUserId: string; responsibleUserFiltering?: ResponsibleUserFiltering; }): T[]; //# sourceMappingURL=filter-helpers.d.ts.map