import * as react from 'react'; import react__default, { ReactNode } from 'react'; type Theme = "light" | "dark"; interface ThemeContextType { theme: Theme; toggleTheme: () => void; } declare const useTheme: () => ThemeContextType; interface EmailOption { name: string; email: string; } interface EmailData { to: EmailOption[]; cc: EmailOption[]; bcc: EmailOption[]; subject: string; body: string; attachments: File[]; isReply?: boolean; } interface GmailInboxProps { /** Function to fetch recipient suggestions based on input. */ fetchEmailOptions: (currentEmail: string) => Promise; /** Callback triggered when the email is "sent" or updated. */ handleChange: (emailData: EmailData) => void; /** Initial values for the email fields (to, subject, body, etc.). */ initialData?: Partial; /** Default theme for the inbox component ('light' or 'dark'). Defaults to 'dark'. */ initialTheme?: Theme; /** Callback triggered when the theme is toggled. */ onThemeChange?: (theme: Theme) => void; /** Component to render on the left side of the toolbar. */ leftChildren?: ReactNode; /** Component to render on the right side of the toolbar. */ rightChildren?: ReactNode; /** Custom tool to render inside the plugin-wrapper. */ customTool?: ReactNode; /** Placeholder text for the editor. */ placeholder?: string; /** Minimum height of the editor. Defaults to '400px'. */ minHeight?: string; /** If true, only the editor body is rendered, hiding the to/cc/bcc/subject fields. */ showOnlyBody?: boolean; /** If true, the inbox is in reply mode, prefixing the subject with "Re: ". */ isReply?: boolean; /** Optional: Configuration for Google Drive integration. */ googleDriveConfig?: { /** The OAuth 2.0 Client ID for your Google Cloud project. */ clientId: string; /** The API Key for your Google Cloud project. */ apiKey: string; /** Optional: Scopes required for the Drive picker. */ scopes?: string; /** Optional: Discovery doc URLs for Google APIs. */ discoveryDocs?: string[]; }; /** Custom AI preview component */ aiContentComponent?: ReactNode; /** The AI-generated content */ aiContent?: string; /** Control visibility of AI preview */ showAiPreview?: boolean; /** Callback when AI content is inserted */ onAiInsert?: (content: string) => void; /** Callback when AI content is discarded */ onAiDiscard?: () => void; /** If true, shows the file attachment tool. Defaults to true. */ showAttachFile?: boolean; } declare function GmailInbox({ fetchEmailOptions, handleChange, initialData, initialTheme, onThemeChange, leftChildren, rightChildren, customTool, showOnlyBody, isReply, googleDriveConfig, aiContentComponent, aiContent, showAiPreview, onAiInsert, onAiDiscard, placeholder, minHeight, showAttachFile, }: GmailInboxProps): react.JSX.Element; type AiInsertHandler = (content: string) => void; type AiDiscardHandler = () => void; interface ComposeBoxProps { /** Custom AI preview component from consumer */ aiContentComponent?: ReactNode; /** The AI-generated content from consumer */ aiContent?: string; /** Control visibility from consumer */ showAiPreview?: boolean; /** Callback provided BY library TO consumer when content is inserted */ onAiInsert?: (content: string) => void; /** Callback provided BY library TO consumer when content is discarded */ onAiDiscard?: () => void; placeholder?: string; minHeight?: string; initialHTML?: string; onChange?: (html: string) => void; leftChildren?: ReactNode; rightChildren?: ReactNode; customTool?: ReactNode; isEditorVisible?: boolean; editorChildren?: ReactNode; showAttachFile?: boolean; } declare function ComposeBox({ aiContentComponent, aiContent, showAiPreview, onAiInsert, onAiDiscard, placeholder, initialHTML, rightChildren, leftChildren, customTool, minHeight, onChange, editorChildren, isEditorVisible, showAttachFile, }: ComposeBoxProps): react__default.JSX.Element; type Alignment = "left" | "center" | "right"; export { type AiDiscardHandler, type AiInsertHandler, type Alignment, ComposeBox, type ComposeBoxProps, type EmailData, type EmailOption, GmailInbox, type Theme, GmailInbox as default, useTheme };