import type { TaskEntity } from "../types.js";
import type { WishlistItem } from "./wishlist-types.js";
/** Task type for ideation items formerly stored as wishlist `W###` rows (Phase 24). */
export declare const WISHLIST_INTAKE_TASK_TYPE = "wishlist_intake";
/** Provenance when migrated from legacy wishlist id (`W1`, …). Omitted for net-new intake tasks. */
export declare const LEGACY_WISHLIST_ID_METADATA_KEY = "legacyWishlistId";
declare const INTAKE_META_KEYS: readonly ["problemStatement", "expectedOutcome", "impact", "constraints", "successSignals", "requestor", "evidenceRef"];
export declare function isWishlistIntakeTask(task: TaskEntity): boolean;
export declare function allocateNextTaskNumericId(tasks: TaskEntity[]): string;
/**
 * Build a `wishlist_intake` task from a legacy `WishlistItem`. Caller supplies the new `T###` id.
 */
export declare function taskEntityFromWishlistItem(item: WishlistItem, newTaskId: string, now: string): TaskEntity;
/**
 * Create a new open wishlist-intake task (no legacy wishlist id). `intake` must pass `validateWishlistIntakePayload` shape except `id` may be omitted.
 */
export declare function taskEntityFromNewIntake(intake: Record<string, unknown>, newTaskId: string, now: string, extraMetadata?: Record<string, unknown>): TaskEntity;
/** Map a `wishlist_intake` task to the wire shape consumers expect from list/get-wishlist. */
export declare function wishlistIntakeTaskToItem(task: TaskEntity): WishlistItem | null;
export declare function listWishlistIntakeTasksAsItems(tasks: TaskEntity[]): WishlistItem[];
export declare function findWishlistIntakeTaskByLegacyOrTaskId(tasks: TaskEntity[], wishlistIdOrTaskId: string): TaskEntity | undefined;
export { INTAKE_META_KEYS };
