import type { WorkspaceStatusSnapshot } from "../dashboard/dashboard-status.js";
import type { TaskEntity } from "../types.js";
/** Resolve stable phase key from task metadata (phaseKey or phase label). */
export declare function inferPhaseKeyFromTask(task: TaskEntity | undefined): string | null;
export type PhaseJournalPhaseKeySource = "phaseKey" | "task" | "workspace-status" | "config";
export type ResolvePhaseKeyForPhaseJournalReadResult = {
    ok: true;
    phaseKey: string;
    source: PhaseJournalPhaseKeySource;
} | {
    ok: false;
    code: "phase-note-task-not-found" | "phase-note-phase-task-mismatch" | "phase-note-phase-unresolved";
    message: string;
};
/**
 * Resolve `phaseKey` for read-only phase journal commands (`list-phase-notes`, `get-phase-context`,
 * `propose-tasks-from-phase-notes`).
 *
 * Precedence: explicit **`phaseKey`** → infer from **`taskId`** task metadata → canonical workspace phase
 * (`kit_workspace_status` / `kit.currentPhaseNumber` via {@link resolveCanonicalPhase}).
 */
export declare function resolvePhaseKeyForPhaseJournalRead(args: {
    phaseKey?: string | undefined;
    taskId?: string | undefined;
    task: TaskEntity | undefined;
    effectiveConfig: Record<string, unknown> | undefined;
    workspaceStatus: WorkspaceStatusSnapshot | null;
}): ResolvePhaseKeyForPhaseJournalReadResult;
