import type { BusinessEvent, MutationContext, PlanId, ProjectId, TaskId } from "@awp/contracts";
import type { AgentRun, Attempt, ChangeSet, FactoryRun, Goal, Plan, PlanRevision, Project, ProjectVisionVersion, PlanningSession, ProjectPlanningDefaults, Review, ReviewFinding, Task, VerificationEvidence, Workspace } from "@awp/domain";
import type { ExecutionDispatcher, ExecutionSelection } from "./execution.js";
import type { Clock, IdGenerator } from "./ports/runtime.js";
import type { UnitOfWork } from "./ports/repositories.js";
import type { ProjectExecutionConfigurationResolver } from "./configuration.js";
export interface CreateProjectInput {
    readonly name: string;
    readonly repositoryUrl: string;
    readonly requiredChecks?: readonly string[];
    readonly context: MutationContext;
}
export interface CreateGoalInput {
    readonly projectId: ProjectId;
    readonly title: string;
    readonly successCriteria: readonly string[];
    readonly context: MutationContext;
}
export interface CreatePlanInput {
    readonly projectId: ProjectId;
    readonly title: string;
    readonly taskTitles: readonly string[];
    readonly context: MutationContext;
}
export interface ProjectHierarchy {
    readonly project: Project;
    readonly vision?: ProjectVisionVersion;
    readonly goals: readonly Goal[];
    readonly plans: readonly Plan[];
    readonly planRevisions: readonly PlanRevision[];
    readonly planningSessions: readonly PlanningSession[];
    readonly planningDefaults?: ProjectPlanningDefaults;
    readonly tasks: readonly Task[];
    readonly factoryRuns: readonly FactoryRun[];
    readonly agentRuns: readonly AgentRun[];
    readonly attempts: readonly Attempt[];
    readonly workspaces: readonly Workspace[];
    readonly changeSets: readonly ChangeSet[];
    readonly reviews: readonly Review[];
    readonly verificationEvidence: readonly VerificationEvidence[];
    readonly reviewFindings: readonly ReviewFinding[];
    readonly events: readonly BusinessEvent[];
}
export declare class I1LifecycleService {
    private readonly uow;
    private readonly ids;
    private readonly clock;
    private readonly executionDispatcher?;
    private readonly configuration?;
    constructor(uow: UnitOfWork, ids: IdGenerator, clock: Clock, executionDispatcher?: ExecutionDispatcher | undefined, configuration?: ProjectExecutionConfigurationResolver | undefined);
    createProject(input: CreateProjectInput): Promise<Project>;
    setProjectRequiredChecks(projectId: ProjectId, requiredChecks: readonly string[], context: MutationContext): Promise<Project>;
    setProjectVision(projectId: ProjectId, summary: string, context: MutationContext): Promise<ProjectVisionVersion>;
    createGoal(input: CreateGoalInput): Promise<Goal>;
    createPlan(input: CreatePlanInput): Promise<{
        plan: Plan;
        revision: PlanRevision;
        tasks: readonly Task[];
    }>;
    addDependency(projectId: ProjectId, taskId: TaskId, prerequisiteTaskId: TaskId, context: MutationContext): Promise<Task>;
    approvePlan(projectId: ProjectId, planId: PlanId, context: MutationContext, selection?: ExecutionSelection): Promise<Plan>;
    reconcileDispatchedWork(projectId: ProjectId, context: MutationContext): Promise<number>;
    listProjects(): Promise<readonly Project[]>;
    hierarchy(projectId: ProjectId): Promise<ProjectHierarchy>;
    private requireProject;
    private record;
}
//# sourceMappingURL=golive.d.ts.map