import { ComponentClass, HTMLProps, ComponentType, Context } from "react"; import type { Options } from "sucrase"; import { PrismTheme, Language } from "prism-react-renderer"; // Helper types type Omit = Pick>; // React Element Props type DivProps = HTMLProps; type PreProps = HTMLProps; // LiveProvider export type LiveProviderProps = Omit & { Context?: Context; transformOptions?: Options; scope?: { [key: string]: any }; code?: string; noInline?: boolean; transformCode?: (code: string) => string | Promise; language?: Language; disabled?: boolean; theme?: PrismTheme; }; export const theme: PrismTheme; export const LiveProvider: ComponentClass; // Editor export type EditorProps = Omit & { Context?: Context; code?: string; disabled?: boolean; language?: Language; onChange?: (code: string) => void; theme?: PrismTheme; prism?: unknown; }; export const Editor: ComponentClass; // Context export interface ContextProps { code?: string; language?: Language; theme: PrismTheme; disabled?: boolean; error?: string; } export const LiveContext: Context; // LiveEditor export type LiveEditorProps = EditorProps; export const LiveEditor: ComponentClass< LiveEditorProps & { Context?: Context } >; // LiveError export const LiveError: ComponentClass< DivProps & { Context?: Context } >; // LivePreview export const LivePreview: ComponentClass< DivProps & { Context?: Context } >; // withLive HOC export function withLive( wrappedComponent: ComponentType ): ComponentClass;
( wrappedComponent: ComponentType
): ComponentClass
;