/**
 * Shared graph-controls input state and guarded commit behavior.
 *
 * This consolidates logic that was previously repeated across control families:
 * - draft + error map state
 * - clear error on draft change
 * - in-flight commit de-duplication
 * - optional unchanged-value short-circuit
 */
export declare function useControlInputState(): {
    draftByKey: Record<string, string>;
    errorByKey: Record<string, string>;
    setDraft: (key: string, value: string) => void;
    setError: (key: string, error: string | null) => void;
    clearDraft: (key: string) => void;
    hasDraft: (key: string) => boolean;
    isCommitting: (key: string) => boolean;
    pruneToActiveKeys: (activeKeys: Set<string>) => void;
    commitParsedInput: <T>({ key, rawValue, parse, errorMessage, onParsed, isUnchanged, }: {
        key: string;
        rawValue: string;
        parse: (rawValue: string) => T | null;
        errorMessage: string;
        onParsed: (value: T) => Promise<void>;
        isUnchanged?: (value: T) => boolean;
    }) => Promise<void>;
};
//# sourceMappingURL=useControlInputState.d.ts.map