import { type ColorTokens, type ViewStyle, type TextStyle } from "../../style/index.js"; export interface ChatSkin { message: (tokens: ColorTokens, user: boolean) => ViewStyle; body: (tokens: ColorTokens) => TextStyle; label: (tokens: ColorTokens) => TextStyle; muted: (tokens: ColorTokens, error?: boolean) => TextStyle; /** `assistant`: the user bubble (an assistant reply stays unframed). */ assistantMessage: (tokens: ColorTokens) => ViewStyle; /** `assistant`: a turn's body text, and its replies' Markdown body. */ assistantBody: (tokens: ColorTokens) => TextStyle; } export declare const root: ViewStyle; export declare const thread: ViewStyle; export declare const content: ViewStyle; /** The conversation's frame: Chat, and a standalone ChatThread or ChatComposer. */ export declare const frame: (tokens: ColorTokens) => ViewStyle; /** `flush`: no frame, the host's fill shows through. */ export declare const flush: ViewStyle; export declare const messageRow: ViewStyle; export declare const userRow: ViewStyle; export declare const assistantRow: ViewStyle; export declare const messageContent: ViewStyle; export declare const userContent: ViewStyle; export declare const questionContent: ViewStyle; export declare const identity: ViewStyle; export declare const attachments: ViewStyle; export declare const attachment: ViewStyle; export declare const questionActions: ViewStyle; export declare const questionButtons: ViewStyle; export declare const questionMode: ViewStyle; export declare const questions: ViewStyle; export declare const blocks: ViewStyle; export declare const composer: (tokens: ColorTokens) => ViewStyle; export declare const composerSurface: (tokens: ColorTokens, focused: boolean) => ViewStyle; export declare const composerRow: ViewStyle; export declare const composerAttachments: ViewStyle; export declare const editor: ViewStyle; export declare const editorHeight: TextStyle; export declare const footer: ViewStyle; export declare const pending: ViewStyle; /** A folded activity line (a plain text action, no box); expanded details sit behind a start hairline. */ export declare const activity: ViewStyle; /** The hand-off draws no activity line, so its label keeps 0d5af5fc's 13 / 18 in the subtle ink. */ export declare const activityLabel: (tokens: ColorTokens) => TextStyle; export declare const activityNested: ViewStyle; export declare const activityGroupBody: ViewStyle; export declare const activityBody: (tokens: ColorTokens) => ViewStyle; export declare const empty: ViewStyle; export declare const thinking: ViewStyle; export declare const thinkingLabel: (tokens: ColorTokens) => TextStyle; export declare const dots: ViewStyle; export declare const dot: (tokens: ColorTokens) => ViewStyle; /** The composer box's widest: the width scale's 768 step. */ export declare const ASSISTANT_COMPOSER_MAX: number; /** The gutters either side of the composer, and the column they make (the composer box plus both gutters). */ export declare const ASSISTANT_GUTTER = 24; export declare const ASSISTANT_COLUMN_MAX: number; /** The messages' inset from the composer's edge: the user bubble ends 16 in. */ export declare const MESSAGE_INSET = 16; /** Assistant text starts 20 in from the composer's edge, 4 more than the bubble's inset. */ export declare const ASSISTANT_INSET = 4; /** Space above a message: a turn that changes speaker, or the next block of the same turn. */ export declare const TURN_GAP = 40; export declare const BLOCK_GAP = 20; /** A reply's Markdown: list items on the line rhythm, paragraphs 12 apart. */ export declare const REPLY_SPACING: { readonly block: 12; readonly list: 0; }; /** Below this width (a phone, a side panel, a wizard body) the thread and the composer trade * their gutters for `assistantNarrowGutter`, so the composer's text keeps its room. */ export declare const NARROW_WIDTH = 480; export declare const assistantContent: ViewStyle; export declare const assistantNarrowGutter: ViewStyle; /** The messages keep their inset from the composer on a narrow column too. */ export declare const assistantNarrowContentGutter: ViewStyle; export declare const assistantUserRow: ViewStyle; export declare const assistantAssistantRow: ViewStyle; /** The turns carry their own space above them (TURN_GAP, BLOCK_GAP). */ export declare const assistantBlocks: ViewStyle; /** A question form's own stack. */ export declare const questionStack: ViewStyle; export declare const assistantQuestionStack: ViewStyle; export declare const assistantActivity: ViewStyle; /** The activity line on the replies' 14 / 21 rhythm in the muted ink, measured on the Claude desktop window. */ export declare const assistantActivityLabel: (tokens: ColorTokens) => TextStyle; export declare const assistantComposer: ViewStyle; export declare const assistantComposerSurface: (tokens: ColorTokens, focused: boolean) => ViewStyle; export declare const assistantComposerRow: ViewStyle; /** The model line under the composer, at its end. */ export declare const meta: (tokens: ColorTokens) => TextStyle; export declare const webSkin: ChatSkin; export declare const iosSkin: ChatSkin; export declare const androidSkin: ChatSkin; /** Flat terminal transcript; the owning layout supplies its surface and bounds. */ export declare const terminalContent: ViewStyle; export declare const terminalMessage: ViewStyle; export declare const terminalBlocks: ViewStyle; export declare const terminalFace: TextStyle; export declare const terminalBody: (tokens: ColorTokens) => TextStyle; export declare const terminalLabel: (tokens: ColorTokens) => TextStyle; export declare const terminalMuted: (tokens: ColorTokens, error?: boolean) => TextStyle; export declare const terminalComposer: (tokens: ColorTokens, focused: boolean) => ViewStyle; export declare const terminalComposerSurface: (tokens: ColorTokens, focused: boolean) => ViewStyle; export declare const terminalFooter: ViewStyle; export declare const terminalComposerRow: ViewStyle; export declare const terminalPrompt: (tokens: ColorTokens, disabled?: boolean) => TextStyle; //# sourceMappingURL=chat.styles.d.ts.map