import { Accessor, Setter, Signal } from "./reactive.js"; import type { JSX } from "../jsx.js"; export type Component

= (props: P) => JSX.Element; export type VoidProps

= P & { children?: never; }; export type VoidComponent

= Component>; export type ParentProps

= P & { children?: JSX.Element; }; export type ParentComponent

= Component>; export type FlowProps

= P & { children: C; }; export type FlowComponent

= Component>; export type Ref = T | ((val: T) => void); export type ValidComponent = keyof JSX.IntrinsicElements | Component | (string & {}); export type ComponentProps = T extends Component ? P : T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] : Record; type SharedConfig = { context?: HydrationContext; }; export declare const sharedConfig: SharedConfig; export declare function createUniqueId(): string; export declare function createComponent(Comp: (props: T) => JSX.Element, props: T): JSX.Element; export declare function mergeProps(source: T, source1: U): T & U; export declare function mergeProps(source: T, source1: U, source2: V): T & U & V; export declare function mergeProps(source: T, source1: U, source2: V, source3: W): T & U & V & W; export declare function splitProps(props: T, ...keys: [K1[]]): [Pick, Omit]; export declare function splitProps(props: T, ...keys: [K1[], K2[]]): [Pick, Pick, Omit]; export declare function splitProps(props: T, ...keys: [K1[], K2[], K3[]]): [Pick, Pick, Pick, Omit]; export declare function splitProps(props: T, ...keys: [K1[], K2[], K3[], K4[]]): [Pick, Pick, Pick, Pick, Omit]; export declare function splitProps(props: T, ...keys: [K1[], K2[], K3[], K4[], K5[]]): [ Pick, Pick, Pick, Pick, Pick, Omit ]; export declare function For(props: { each: T[]; fallback?: string; children: (item: T, index: () => number) => string; }): string | any[] | undefined; export declare function Index(props: { each: T[]; fallback?: string; children: (item: () => T, index: number) => string; }): string | any[] | undefined; /** * Conditionally render its children or an optional fallback component * @description https://www.solidjs.com/docs/latest/api#show */ export declare function Show(props: { when: T | undefined | null | false; keyed?: boolean; fallback?: string; children: string | ((item: NonNullable | Accessor>) => string); }): string; export declare function Switch(props: { fallback?: string; children: MatchProps | MatchProps[]; }): string; type MatchProps = { when: T | false; keyed?: boolean; children: string | ((item: NonNullable | Accessor>) => string); }; export declare function Match(props: MatchProps): MatchProps; export declare function resetErrorBoundaries(): void; export declare function ErrorBoundary(props: { fallback: string | ((err: any, reset: () => void) => string); children: string; }): string | ((err: any, reset: () => void) => string) | { t: string; }; export interface Resource { (): T | undefined; state: "unresolved" | "pending" | "ready" | "refreshing" | "errored"; loading: boolean; error: any; latest: T | undefined; } type SuspenseContextType = { resources: Map; completed: () => void; }; export type ResourceActions = { mutate: Setter; refetch: (info?: unknown) => void; }; export type ResourceReturn = [Resource, ResourceActions]; export type ResourceSource = S | false | null | undefined | (() => S | false | null | undefined); export type ResourceFetcher = (k: S, info: ResourceFetcherInfo) => T | Promise; export type ResourceFetcherInfo = { value: T | undefined; refetching?: unknown; }; export type ResourceOptions = undefined extends T ? { initialValue?: T; name?: string; deferStream?: boolean; ssrLoadFrom?: "initial" | "server"; storage?: () => Signal; onHydrated?: (k: S, info: ResourceFetcherInfo) => void; } : { initialValue: T; name?: string; deferStream?: boolean; ssrLoadFrom?: "initial" | "server"; storage?: (v?: T) => Signal; onHydrated?: (k: S, info: ResourceFetcherInfo) => void; }; export declare function createResource(fetcher: ResourceFetcher, options?: ResourceOptions): ResourceReturn; export declare function createResource(fetcher: ResourceFetcher, options: ResourceOptions): ResourceReturn; export declare function createResource(source: ResourceSource, fetcher: ResourceFetcher, options?: ResourceOptions): ResourceReturn; export declare function createResource(source: ResourceSource, fetcher: ResourceFetcher, options: ResourceOptions): ResourceReturn; export declare function lazy>(fn: () => Promise<{ default: T; }>): T & { preload: () => Promise<{ default: T; }>; }; export declare function enableScheduling(): void; export declare function enableHydration(): void; export declare function startTransition(fn: () => any): void; export declare function useTransition(): [() => boolean, (fn: () => any) => void]; type HydrationContext = { id: string; count: number; writeResource: (id: string, v: Promise | any, error?: boolean, deferStream?: boolean) => void; replace: (id: string, replacement: () => any) => void; block: (p: Promise) => void; resources: Record; suspense: Record; registerFragment: (v: string) => (v?: string, err?: any) => boolean; lazy: Record>; async?: boolean; noHydrate: boolean; }; export declare function SuspenseList(props: { children: string; revealOrder: "forwards" | "backwards" | "together"; tail?: "collapsed" | "hidden"; }): string; export declare function Suspense(props: { fallback?: string; children: string; }): string | number | boolean | Node | JSX.ArrayElement | { t: string; } | null | undefined; export {};