import type { ChatStatus } from 'ai'; import type { AppConfig } from '@nuxt/schema'; import theme from '#build/b24ui/chat-prompt-submit'; import type { IconComponent } from '../types/icons'; import type { ButtonProps, ButtonSlots } from './Button.vue'; import type { LinkPropsKeys } from './Link.vue'; import type { ComponentConfig } from '../types/tv'; type ChatPromptSubmit = ComponentConfig; export interface ChatPromptSubmitProps extends Omit { status?: ChatStatus; /** * The icon displayed in the button when the status is `ready`. Set to `false` to hide the icon. * @defaultValue icons.imSend * @IconComponent */ icon?: IconComponent | false; /** * The color of the button when the status is `ready`. * @defaultValue 'air-primary' */ color?: ButtonProps['color']; /** * The icon displayed in the button when the status is `streaming`. * @defaultValue icons.stop * @IconComponent */ streamingIcon?: IconComponent; /** * The color of the button when the status is `streaming`. * @defaultValue 'air-secondary-accent-2' */ streamingColor?: ButtonProps['color']; /** * The icon displayed in the button when the status is `submitted`. * @defaultValue icons.stop * @IconComponent */ submittedIcon?: IconComponent; /** * The color of the button when the status is `submitted`. * @defaultValue 'air-secondary-no-accent' */ submittedColor?: ButtonProps['color']; /** * The icon displayed in the button when the status is `error`. * @defaultValue icons.reload * @IconComponent */ errorIcon?: IconComponent; /** * The color of the button when the status is `error`. * @defaultValue 'air-primary-alert' */ errorColor?: ButtonProps['color']; b24ui?: ChatPromptSubmit['slots'] & ButtonProps['b24ui']; class?: any; } export interface ChatPromptSubmitEmits { stop: [event: MouseEvent]; reload: [event: MouseEvent]; } declare const _default: typeof __VLS_export; export default _default; declare const __VLS_export: __VLS_WithSlots any; stop: (event: MouseEvent) => any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onReload?: ((event: MouseEvent) => any) | undefined; onStop?: ((event: MouseEvent) => any) | undefined; }>, { color: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-alert" | "air-secondary-accent" | "air-secondary-accent-1" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai"; status: ChatStatus; streamingColor: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-alert" | "air-secondary-accent" | "air-secondary-accent-1" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai"; submittedColor: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-alert" | "air-secondary-accent" | "air-secondary-accent-1" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai"; errorColor: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-alert" | "air-secondary-accent" | "air-secondary-accent-1" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ButtonSlots>; type __VLS_WithSlots = T & { new (): { $slots: S; }; };