import * as React from 'react';
import { ChatInput } from './chat-input';
import type { ChatInputRef, ModelDisplayProps } from './types/component.types';
export interface ChatComposerProps {
    /** Read-only archived chat → render the unarchive placeholder instead of the
     *  input (Figma node 7361:426949). */
    archived?: boolean;
    inputRef: React.Ref<ChatInputRef>;
    onSend: (text: string) => void;
    onStop: () => void;
    sending: boolean;
    placeholder: string;
    autoFocus?: boolean;
    slashCommands?: React.ComponentProps<typeof ChatInput>['slashCommands'];
    /** Show the (Guide-only) attachment add button to the left of the model row. */
    showAttachmentButton?: boolean;
    attachmentsCount?: number;
    onAddFiles?: (files: FileList | File[]) => void;
    attachmentsDisabled?: boolean;
    /** Model + usage row props, forwarded to `<ModelDisplay>`. */
    model: ModelDisplayProps;
}
/**
 * Chat panel footer (Figma node 7363:205952): the message composer (live
 * `ChatInput` or the read-only archived placeholder) above the model/usage
 * row. No own background — inherits the panel surface so it blends seamlessly.
 */
export declare function ChatComposer({ archived, inputRef, onSend, onStop, sending, placeholder, autoFocus, slashCommands, showAttachmentButton, attachmentsCount, onAddFiles, attachmentsDisabled, model, }: ChatComposerProps): React.JSX.Element;
//# sourceMappingURL=chat-composer.d.ts.map