import { type ExecutionResult } from "../../editor/services/serviceHelper";
import type { Goal, GoalData, GoalDefinition, ProjectGoalsResponse, Subgoal } from "../types";
export declare function getProjectGoals(projectId: string, includeDescendants?: boolean): Promise<ExecutionResult<ProjectGoalsResponse>>;
export declare function getGoalCatalog(projectId: string): Promise<ExecutionResult<GoalDefinition[]>>;
export type CreateGoalInput = {
    projectId: string;
    title?: string;
    description?: string;
    sourceGoalTemplateId?: string | null;
    data?: GoalData;
};
export declare function createGoal(input: CreateGoalInput): Promise<ExecutionResult<Goal>>;
export type UpdateGoalInput = {
    goalId: string;
    title?: string;
    status?: string;
    dataPatch?: GoalData;
    data?: GoalData;
    replaceData?: boolean;
    clearData?: boolean;
    description?: string;
    clearDescription?: boolean;
    sortOrder?: number;
};
export declare function updateGoal(input: UpdateGoalInput): Promise<ExecutionResult<Goal>>;
export declare function deleteGoal(goalId: string): Promise<ExecutionResult<{
    success: boolean;
}>>;
export type CreateSubgoalInput = {
    goalId: string;
    title: string;
    description?: string;
    targetItemId?: string | null;
    targetItemLanguage?: string | null;
    data?: GoalData;
};
export declare function createSubgoal(input: CreateSubgoalInput): Promise<ExecutionResult<Subgoal>>;
export type UpdateSubgoalInput = {
    subgoalId: string;
    title?: string;
    status?: string;
    dataPatch?: GoalData;
    data?: GoalData;
    replaceData?: boolean;
    clearData?: boolean;
    description?: string;
    clearDescription?: boolean;
    sortOrder?: number;
};
export declare function updateSubgoal(input: UpdateSubgoalInput): Promise<ExecutionResult<Subgoal>>;
export declare function deleteSubgoal(subgoalId: string): Promise<ExecutionResult<{
    success: boolean;
}>>;
export declare function reorderGoals(input: {
    projectId: string;
    goalIds: string[];
}): Promise<ExecutionResult<{
    success: boolean;
}>>;
export declare function reorderSubgoals(input: {
    goalId: string;
    subgoalIds: string[];
}): Promise<ExecutionResult<{
    success: boolean;
}>>;
