import type { ComponentType, FunctionComponent, ReactNode, ForwardRefExoticComponent, RefAttributes, ReactElement, Ref, } from "react"; import type { StyleProp, ViewStyle, ScrollView as NativeScrollView, ScrollViewProps, FlatList as NativeFlatList, FlatListProps, TextInput as NativeTextInput, TextInputProps, } from "react-native"; import type { PluginIconProps } from "./contracts.js"; export interface ModalProps { title: string; icon?: ReactNode; open: boolean; onOpenChange(open: boolean): void; children: ReactNode; } export interface ModalContentProps { children: ReactNode; /** Paint the full body below the header. */ style?: StyleProp; /** Overrides the default 24px padding and 16px gap. Safe-area clearance stays host-owned. */ contentContainerStyle?: StyleProp; /** Default true. Set false for a bounded body with your own ScrollView or FlatList. */ scrollable?: boolean; } export interface ModalComponent extends FunctionComponent { Content: ComponentType; } export type ToastVariant = "default" | "info" | "success" | "warning" | "error"; export interface ToastOptions { variant?: ToastVariant; durationMs?: number; } export interface ToastApi { show(message: string, options?: ToastOptions): void; error(message: string): void; } export declare const Icon: ComponentType; export declare const Modal: ModalComponent; export declare function useToast(): ToastApi; export declare function useRevealedText(text: string, phase: "streaming" | "complete"): string; export type { PluginIconProps } from "./contracts.js"; /** React Native scrolling with the host's sheet gestures when rendered inside a sheet. */ export declare const ScrollView: ForwardRefExoticComponent< ScrollViewProps & RefAttributes >; export declare function FlatList( props: FlatListProps & { ref?: Ref> }, ): ReactElement; /** Copies text to this client's clipboard. Rejects when copying is unavailable or denied. */ export declare function copyText(text: string): Promise; /** Native input focus integrated with modal keyboard positioning. */ export declare const TextInput: ForwardRefExoticComponent< TextInputProps & RefAttributes >;