import { ChildPart } from "lit-html"; import { ComponentCreator } from "./component"; import { ContextCreator } from "./create-context"; type Component

= HTMLElement & P; type ComponentOrVirtualComponent = T extends HTMLElement ? Component

: ChildPart; type GenericRenderer = (this: ComponentOrVirtualComponent, ...args: any[]) => unknown | void; type RenderResult = { setConnected: (isConnected: boolean) => void; }; type RenderFunction = (result: unknown, container: DocumentFragment | HTMLElement) => RenderResult; interface Options { render: RenderFunction; } declare function pion({ render }: Options): { component: ComponentCreator; createContext: ContextCreator; }; export { pion as default, Options, GenericRenderer, RenderFunction, RenderResult, ComponentOrVirtualComponent, }; export { useCallback } from "./use-callback"; export { useEffect } from "./use-effect"; export { useLayoutEffect } from "./use-layout-effect"; export { useState } from "./use-state"; export { useReducer } from "./use-reducer"; export { useMemo } from "./use-memo"; export { useContext } from "./use-context"; export { useProperty, lift } from "./use-property"; export { useRef, createRef } from "./use-ref"; export { useHost } from "./use-host"; export { hook, Hook } from "./hook"; export { BaseScheduler } from "./scheduler"; export { State } from "./state"; export type { Ref } from "./use-ref"; export type { Options as ComponentOptions } from "./component"; export type { StateUpdater } from "./use-state"; export { InfiniteLoopError } from "./errors"; /** * Represents any value that can be rendered by lit-html. * * In practice, lit-html can attempt to render almost anything, since it * stringifies unknown values using their `toString()` method. However, this * doesn’t mean the output will always be meaningful — for example, interpolating * a plain object results in `[object Object]`. * * This type is intended to annotate content that will be passed to lit-html * templates or rendering functions. * * @example * ```ts * function renderButton(buttonBody: Renderable) { * return html` * * `; * } * ``` */ export type Renderable = null | undefined | { toString: () => string; };