import type { UIMessage } from "@osdk/aip-core";
import type { ChatStatus } from "@osdk/react/experimental/aip";
import * as React from "react";
export interface BaseAipAgentChatProps {
	/**
	* Current messages in the conversation.
	*/
	messages: ReadonlyArray<UIMessage>;
	/**
	* Current status of the chat lifecycle.
	*/
	status: ChatStatus;
	/**
	* Current error, if any.
	*/
	error: Error | undefined;
	/**
	* Called when the user sends a message. Should return a promise that
	* resolves when the message has been sent.
	*
	* @param text The text the user just submitted (already trimmed).
	*/
	onSendMessage: (text: string) => Promise<void>;
	/**
	* Called to stop an in-flight request.
	*/
	onStop: () => void;
	/**
	* Called to clear the current error.
	*/
	onClearError: () => void;
	/**
	* Optional content rendered in the composer footer, to the left of
	* the send button. The OSDK wrapper uses this slot for the model
	* picker.
	*/
	composerFooter?: React.ReactNode;
	className?: string;
	/**
	* @default "Type a message..."
	*/
	placeholder?: string;
	/**
	* @default true
	*/
	enableAutoScroll?: boolean;
	renderEmptyState?: () => React.ReactNode;
	renderMessage?: (message: UIMessage) => React.ReactNode;
}
/**
* OSDK-agnostic chat surface. Manages conversation state, streaming UI,
* and error display internally; the consumer provides the current state
* and callbacks for sending messages and managing state.
*/
export declare const BaseAipAgentChat: React.NamedExoticComponent<BaseAipAgentChatProps>;
