export type ServiceCommandType = 'add_task' | 'update_task' | 'close_task' | 'reopen_task' | 'add_note' | 'edit_note' | 'delete_note' | 'show_today' | 'show_open_tasks' | 'show_closed_tasks' | 'daily_review' | 'weekly_review' | 'set_reminder_time' | 'pause_reminders' | 'resume_reminders';
export interface ExtractedCommand {
    type: ServiceCommandType;
    title?: string;
    content?: string;
    task_id?: string;
    note_id?: string;
    due_date?: string;
    priority?: 'low' | 'normal' | 'high';
    reminder_time?: string;
    fields?: Record<string, unknown>;
}
export interface CommandExtractionResult {
    commands: ExtractedCommand[];
    raw_input: string;
    valid: boolean;
    errors: string[];
}
export interface StateTransitionEvent {
    event_id: string;
    service_id: string;
    command: ExtractedCommand;
    timestamp: string;
    success: boolean;
    error?: string;
    state_before_hash?: string;
    state_after_hash?: string;
}
export declare function extractCommands(message: string): CommandExtractionResult;
/** Try to parse a JSON command payload (from LLM output). */
export declare function parseJsonCommands(json: string): CommandExtractionResult;
/** Validate a command before applying it to service state. */
export declare function validateStateTransition(command: ExtractedCommand, serviceId: string): {
    valid: boolean;
    errors: string[];
};
/** Create a state transition event for logging. */
export declare function createTransitionEvent(serviceId: string, command: ExtractedCommand, success: boolean, error?: string): StateTransitionEvent;
//# sourceMappingURL=commandExtractor.d.ts.map