import * as _tanstack_react_query from '@tanstack/react-query';
import { a as KanbanUser } from '../../../../shared/stack.FeaWkglm.js';
import { S as SerializedBoardWithColumns, a as SerializedBoard, b as SerializedColumn, c as SerializedTask, P as Priority } from '../../../../shared/stack.DKDMI-QO.js';
import 'react';

/**
 * Hook to fetch list of boards
 */
declare function useBoards(params?: {
    slug?: string;
    ownerId?: string;
    organizationId?: string;
}): _tanstack_react_query.UseQueryResult<SerializedBoardWithColumns[], Error>;
/**
 * Hook to fetch list of boards with suspense
 */
declare function useSuspenseBoards(params?: {
    slug?: string;
    ownerId?: string;
    organizationId?: string;
}): _tanstack_react_query.UseSuspenseQueryResult<SerializedBoardWithColumns[], Error>;
/**
 * Hook to fetch a single board by ID
 */
declare function useBoard(boardId: string): _tanstack_react_query.UseQueryResult<SerializedBoardWithColumns | null, Error>;
/**
 * Hook to fetch a single board with suspense
 */
declare function useSuspenseBoard(boardId: string): _tanstack_react_query.UseSuspenseQueryResult<SerializedBoardWithColumns | null, Error>;
/**
 * Hook for board CRUD mutations
 */
declare function useBoardMutations(): {
    createBoard: _tanstack_react_query.UseMutateAsyncFunction<SerializedBoardWithColumns, Error, {
        name: string;
        description?: string;
        ownerId?: string;
        organizationId?: string;
    }, unknown>;
    updateBoard: (id: string, data: Parameters<_tanstack_react_query.UseMutateAsyncFunction<SerializedBoard, Error, {
        id: string;
        data: Partial<{
            name: string;
            description: string;
            slug: string;
        }>;
    }, unknown>>[0]["data"]) => Promise<SerializedBoard>;
    deleteBoard: _tanstack_react_query.UseMutateAsyncFunction<{
        success: boolean;
    }, Error, string, unknown>;
    isCreating: boolean;
    isUpdating: boolean;
    isDeleting: boolean;
    createError: Error | null;
    updateError: Error | null;
    deleteError: Error | null;
};
/**
 * Hook for column CRUD mutations
 */
declare function useColumnMutations(): {
    createColumn: _tanstack_react_query.UseMutateAsyncFunction<SerializedColumn, Error, {
        title: string;
        boardId: string;
        order?: number;
    }, unknown>;
    updateColumn: (id: string, data: Parameters<_tanstack_react_query.UseMutateAsyncFunction<SerializedColumn, Error, {
        id: string;
        data: Partial<{
            title: string;
            order: number;
        }>;
    }, unknown>>[0]["data"]) => Promise<SerializedColumn>;
    deleteColumn: _tanstack_react_query.UseMutateAsyncFunction<{
        success: boolean;
    }, Error, string, unknown>;
    reorderColumns: (boardId: string, columnIds: string[]) => Promise<{
        success: boolean;
    }>;
    isCreating: boolean;
    isUpdating: boolean;
    isDeleting: boolean;
    isReordering: boolean;
    createError: Error | null;
    updateError: Error | null;
    deleteError: Error | null;
    reorderError: Error | null;
};
/**
 * Hook for task CRUD mutations
 */
declare function useTaskMutations(): {
    createTask: _tanstack_react_query.UseMutateAsyncFunction<SerializedTask, Error, {
        title: string;
        description?: string;
        priority?: Priority;
        columnId: string;
        assigneeId?: string;
        order?: number;
    }, unknown>;
    updateTask: (id: string, data: Parameters<_tanstack_react_query.UseMutateAsyncFunction<SerializedTask, Error, {
        id: string;
        data: Partial<{
            title: string;
            description: string;
            priority: Priority;
            columnId: string;
            assigneeId: string | null;
            order: number;
            isArchived: boolean;
        }>;
    }, unknown>>[0]["data"]) => Promise<SerializedTask>;
    deleteTask: _tanstack_react_query.UseMutateAsyncFunction<{
        success: boolean;
    }, Error, string, unknown>;
    moveTask: (taskId: string, targetColumnId: string, targetOrder: number) => Promise<SerializedTask>;
    reorderTasks: (columnId: string, taskIds: string[]) => Promise<{
        success: boolean;
    }>;
    isCreating: boolean;
    isUpdating: boolean;
    isDeleting: boolean;
    isMoving: boolean;
    isReordering: boolean;
    createError: Error | null;
    updateError: Error | null;
    deleteError: Error | null;
    moveError: Error | null;
    reorderError: Error | null;
};
/**
 * Hook to resolve a user from their ID
 * Caches results to avoid repeated lookups
 */
declare function useResolveUser(userId: string | undefined | null): _tanstack_react_query.UseQueryResult<KanbanUser | null, Error>;
/**
 * Hook to search for users available for assignment
 * @param query - Search query (empty string for all users)
 * @param boardId - Optional board context for scoped user lists
 */
declare function useSearchUsers(query: string, boardId?: string): _tanstack_react_query.UseQueryResult<KanbanUser[], Error>;

export { useBoard, useBoardMutations, useBoards, useColumnMutations, useResolveUser, useSearchUsers, useSuspenseBoard, useSuspenseBoards, useTaskMutations };
