import type { TaskEntity, TaskMutationEvidence, TransitionEvidence } from "../types.js";
import type { TaskStateEventV1, TaskUpdatedPayloadV1 } from "../task-state-events/event-payloads.js";
import type { TaskStore } from "./store.js";
export type DraftEventContext = {
    commandName: string;
    moduleId?: string;
    invocationId?: string;
    actorId?: string;
    clientMutationId?: string;
    phaseKey?: string;
    gitHeadSha?: string;
};
export declare function taskUpdatedValuesForChangedFields(task: TaskEntity, changedFields: readonly string[]): TaskUpdatedPayloadV1["values"];
export declare function taskUpdatedValuesForRichCreate(task: TaskEntity): TaskUpdatedPayloadV1["values"];
export declare function draftTransitionedEvent(evidence: TransitionEvidence, ctx: DraftEventContext, store: TaskStore, workspacePath?: string): TaskStateEventV1;
export declare function draftCreatedEvent(task: TaskEntity, ctx: DraftEventContext): TaskStateEventV1;
export declare function draftCreatedTaskEvents(task: TaskEntity, ctx: DraftEventContext): TaskStateEventV1[];
export declare function draftUpdatedEvent(taskId: string, changedFields: string[], store: TaskStore, ctx: DraftEventContext, values?: TaskUpdatedPayloadV1["values"], workspacePath?: string): TaskStateEventV1;
export declare function draftEventsFromTransitionResult(input: {
    primary: TransitionEvidence;
    autoUnblocked: TransitionEvidence[];
    ctx: DraftEventContext;
    store: TaskStore;
    workspacePath?: string;
}): TaskStateEventV1[];
export declare function mutationEvidenceToDraftEvent(mutation: TaskMutationEvidence, task: TaskEntity | undefined, store: TaskStore, ctx: DraftEventContext): TaskStateEventV1 | null;
