import { DataNode, DataTree } from '../../types/data-structures';
import { ObjectProtocolHandler } from '../../types/generic';
import { BooleanValue } from '../../types/legacy';
export type ChatAuthor = "user" | "assistant" | "system" | string;
export type ChatMessage = {
    id: string;
    author: ChatAuthor;
    content: string;
    timestamp?: string;
    buttons?: Array<DataNode>;
};
export type ChatProps = {
    AssistantLabel?: string;
    ChatHeight?: string;
    busy?: boolean;
    ReadOnly?: BooleanValue;
    ChatLayout?: "textarea-below" | "textarea-above";
    data?: DataTree;
    onClear?: () => void;
    onClick?: (button: DataNode) => void;
    onDictate?: (text?: string, isFinal?: boolean) => void;
    onKeyDown?: (e: React.KeyboardEvent) => void;
    onSend?: (arg: ChatMessage[]) => void | Promise<void>;
    /**
     * Callback called when the component is unmounted or if is necessary to save the state - sends the state as string
     */
    onSaveTemporaryComponentState?: (state: string) => void;
    /**
     * Callback called when the component is mounted - receives the state as string
     */
    onMountComponent?: () => string | undefined;
    onObjectProtocol?: ObjectProtocolHandler;
    Placeholder?: string;
    SendMode?: "last" | "all";
    sttActive?: boolean;
    UserLabel?: string;
};
//# sourceMappingURL=chat-types.d.ts.map