import { type Task, type TaskPriority } from './taskStore';
export type GoalStatus = 'active' | 'completed' | 'abandoned';
export type GoalPriority = 'low' | 'normal' | 'high' | 'critical';
export interface Goal {
    id: string;
    companyId: string;
    title: string;
    description: string;
    /** How this goal aligns with the company mission. */
    missionAlignment: string;
    status: GoalStatus;
    priority: GoalPriority;
    targetDate?: string;
    createdAt: string;
    updatedAt: string;
}
export interface CreateGoalInput {
    title: string;
    description: string;
    missionAlignment?: string;
    priority?: GoalPriority;
    targetDate?: string;
}
export interface UpdateGoalInput {
    title?: string;
    description?: string;
    missionAlignment?: string;
    status?: GoalStatus;
    priority?: GoalPriority;
    targetDate?: string;
}
export interface GoalProgress {
    goalId: string;
    companyId: string;
    totalTasks: number;
    completedTasks: number;
    progressPercent: number;
    status: GoalStatus;
}
export declare function listGoals(projectDir: string, companyId: string, filter?: {
    status?: GoalStatus;
    priority?: GoalPriority;
}): Promise<Goal[]>;
export declare function getGoal(projectDir: string, companyId: string, id: string): Promise<Goal | undefined>;
export declare function createGoal(projectDir: string, companyId: string, input: CreateGoalInput, now?: Date): Promise<Goal>;
export declare function updateGoal(projectDir: string, companyId: string, id: string, input: UpdateGoalInput, now?: Date): Promise<Goal>;
export declare function deleteGoal(projectDir: string, companyId: string, id: string): Promise<boolean>;
/**
 * Decompose a goal into child tasks. Creates one task per prompt with the
 * goal's companyId and goalId set, and optional dependsOn chains.
 */
export declare function decomposeGoal(projectDir: string, companyId: string, goalId: string, prompts: Array<{
    title: string;
    description?: string;
    priority?: TaskPriority;
    dependsOn?: string[];
}>, now?: Date): Promise<Task[]>;
/**
 * Calculate progress for a goal by aggregating its child tasks.
 * Returns completion stats and an overall progress percentage.
 */
export declare function getGoalProgress(projectDir: string, companyId: string, goalId: string): Promise<GoalProgress>;
/**
 * Roll up progress for all goals in a company.
 */
export declare function listGoalProgress(projectDir: string, companyId: string): Promise<GoalProgress[]>;
//# sourceMappingURL=goals.d.ts.map