import { type UseFileAttachmentsResult } from "../../hooks/use-file-attachments.js"; import type { ChatComposerMessages } from "../../components/composer.js"; import type { ComposerState } from "../../hooks/use-composer.js"; import type { SlashCommandContext } from "../../hooks/use-slash-commands.js"; import type { EffectiveSessionControl } from "@opengeni/sdk"; import { type ReactNode } from "react"; export declare function useDraftAttachments(workspaceId: string, scope?: "workspace" | "personal"): UseFileAttachmentsResult; export declare function ConsoleComposer(props: { workspaceId: string; composer: ComposerState; attachments: UseFileAttachmentsResult; effectiveControl?: EffectiveSessionControl | null | undefined; queuedAheadCount?: number | undefined; canControlWorkspace?: boolean | undefined; controlLinks?: { workspaceHref?: string | undefined; sessionHref?: ((sessionId: string) => string) | undefined; } | undefined; placeholder?: string | undefined; autoFocus?: boolean | undefined; disabled?: boolean | undefined; fileUploadsEnabled: boolean; /** Rendered before attach (mobile “+” lives here). */ controlsLeading?: ReactNode | undefined; /** Session setup controls rendered above the message input. */ header?: ReactNode | undefined; controls?: ReactNode | undefined; actions?: ReactNode | undefined; commandContext?: SlashCommandContext | undefined; onClearView?: (() => void) | undefined; /** Route-specific composer copy, including an exact disabled-send explanation. */ messages?: Partial | undefined; /** Soft-hide dictate while realtime voice is active. */ transcriptionSuppressed?: boolean | undefined; /** Re-read the near/at-limit usage line when this changes (for example the session status). */ usageRefreshKey?: unknown | undefined; }): import("react").JSX.Element;