$request Request (see interface doc). * @param callable|null $on_event When given, the client may stream and call it with * events: {type:text_delta,text} | {type:thinking} | * {type:tool_use_start,id,name}. * @param callable|null $should_abort Polled while streaming; return true to cancel. * On cancel return a response with aborted=true. * @return LlmResponse * @throws LlmException On transport / provider errors. */ public function create_message( array $request, ?callable $on_event = null, ?callable $should_abort = null ): LlmResponse; /** * Whether the AI connection is configured (false = not connected: nothing is sent). */ public function is_configured(): bool; }