import type { Goal, GoalStatus, GoalTaskStatus, SubagentStatus } from '../lib/api-client';
export declare const goalQueryKey: (sessionId: string | undefined) => string[];
export declare const projectGoalsQueryKey: readonly ["goals", "project"];
export declare const subagentsQueryKey: (sessionId: string | undefined) => string[];
export declare function useOttoEnabled(): boolean;
/**
 * Lists every goal for the current project (active, completed, abandoned),
 * each with its full task queue. Powers the Otto tab overview and goal view.
 */
export declare function useProjectGoals(): import("@tanstack/react-query").UseQueryResult<{
    goals: Goal[];
}, Error>;
/**
 * Appends tasks to a goal from the Otto tab. Updates the project goals cache
 * with the returned goal so the queue refreshes immediately.
 */
export declare function useAddProjectGoalTasks(): import("@tanstack/react-query").UseMutationResult<{
    goal: Goal;
}, Error, {
    goalId: string;
    tasks: string[];
}, unknown>;
/**
 * Deletes a goal task from the Otto tab. The server rejects in_progress
 * tasks with a 409 — surface the error to the caller via onError.
 */
export declare function useDeleteProjectGoalTask(): import("@tanstack/react-query").UseMutationResult<{
    goal: Goal;
}, Error, {
    goalId: string;
    taskId: string;
}, unknown>;
export declare function useSessionGoal(sessionId: string | undefined): import("@tanstack/react-query").UseQueryResult<{
    goal: Goal | null;
}, Error>;
export declare function useCreateSessionGoal(sessionId: string | undefined): import("@tanstack/react-query").UseMutationResult<{
    goal: Goal;
}, Error, {
    title: string;
    tasks?: string[];
}, unknown>;
export declare function useUpdateGoal(sessionId: string | undefined): import("@tanstack/react-query").UseMutationResult<{
    goal: Goal;
}, Error, {
    goalId: string;
    title?: string;
    status?: GoalStatus;
}, unknown>;
export declare function useAddGoalTasks(sessionId: string | undefined): import("@tanstack/react-query").UseMutationResult<{
    goal: Goal;
}, Error, {
    goalId: string;
    tasks: string[];
}, unknown>;
export declare function useUpdateGoalTask(sessionId: string | undefined): import("@tanstack/react-query").UseMutationResult<{
    task: import("..").GoalTask;
}, Error, {
    goalId: string;
    taskId: string;
    content?: string;
    status?: GoalTaskStatus;
    note?: string | null;
}, unknown>;
export declare function useSessionSubagents(sessionId: string | undefined, status?: SubagentStatus): import("@tanstack/react-query").UseQueryResult<{
    subagents: import("..").Subagent[];
}, Error>;
/**
 * Starts the session's goal via the server start endpoint, which injects an
 * automated tagged kickoff into the main session and marks the goal started.
 */
export declare function useStartGoal(sessionId: string | undefined): import("@tanstack/react-query").UseMutationResult<{
    goal: Goal;
}, Error, {
    goalId: string;
}, unknown>;
//# sourceMappingURL=useGoals.d.ts.map