/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { type Todo } from '@vybestack/llxprt-code-core';
/**
 * @plan PLAN-20260129-TODOPERSIST.P03
 * @fix FIX-1336-EMPTY-CLEAR
 * Determine whether todos should be cleared based on their state.
 * Returns true only if all todos are completed (user finished their work).
 * Returns false if the list is empty (nothing to clear) or has incomplete todos.
 */
export declare function shouldClearTodos(todos: Todo[]): boolean;
export declare class TodoPausePreserver {
    private preserveNextSubmission;
    /**
     * @plan PLAN-20260129-TODOPERSIST.P01
     * Modified to accept todos parameter for conditional clearing logic.
     */
    handleSubmit(onClear: () => void, todos: Todo[]): void;
    registerTodoPause(): void;
}
interface UseTodoPausePreserverOptions {
    controller: TodoPausePreserver;
    updateTodos: (todos: Todo[]) => void;
    handleFinalSubmit: (submittedValue: string) => void;
    /**
     * @plan PLAN-20260129-TODOPERSIST.P01
     * Current todos list required for conditional clearing.
     */
    todos: Todo[];
}
export declare const useTodoPausePreserver: ({ controller, updateTodos, handleFinalSubmit, todos, }: UseTodoPausePreserverOptions) => {
    handleUserInputSubmit: (submittedValue: string) => void;
};
export {};
