/**
 * Local natural-language task intake — explicit regex/heuristic parsing only.
 * Builds on inbox-intake for redaction, dedupe, and task creation.
 */
import type { Database } from "bun:sqlite";
import { type Task } from "../db/tasks.js";
import type { TaskPriority, TaskStatus } from "../types/index.js";
import { INBOX_INTAKE_SCHEMA, type IntakeOptions, type IntakePreview } from "./inbox-intake.js";
export declare const NL_INTAKE_SCHEMA = "todos.nl_intake.v1";
export interface ParsedNlFields {
    title: string;
    description?: string;
    priority?: TaskPriority;
    due_at?: string;
    tags: string[];
    recurrence_rule?: string;
    assigned_to?: string;
    status?: TaskStatus;
}
export interface NlIntakeExplain {
    field: string;
    value: string;
    source: string;
}
export interface NlIntakeInput {
    text: string;
    project_id?: string;
    task_list_id?: string;
    agent_id?: string;
    assigned_to?: string;
    tags?: string[];
    priority?: TaskPriority;
}
export interface NlIntakePreview {
    schema_version: typeof NL_INTAKE_SCHEMA;
    dry_run: true;
    parsed: ParsedNlFields;
    explain: NlIntakeExplain[];
    intake: IntakePreview;
}
export interface NlIntakeResult {
    schema_version: typeof NL_INTAKE_SCHEMA;
    dry_run: boolean;
    parsed: ParsedNlFields;
    explain: NlIntakeExplain[];
    intake: IntakePreview;
    task: Task | null;
    skipped_duplicate: boolean;
}
export interface ParseNaturalLanguageOptions {
    now?: Date;
}
export declare function parseNaturalLanguageTask(text: string, options?: ParseNaturalLanguageOptions): {
    parsed: ParsedNlFields;
    explain: NlIntakeExplain[];
};
export declare function previewNlIntake(input: NlIntakeInput, db?: Database): NlIntakePreview;
export declare function createNlIntake(input: NlIntakeInput, options?: IntakeOptions, db?: Database): NlIntakeResult;
export declare function formatNlIntakePreviewText(preview: NlIntakePreview): string;
export { INBOX_INTAKE_SCHEMA };
//# sourceMappingURL=nl-intake.d.ts.map