import * as React from "react"; import * as THREE from "three"; import { Five, FiveInitArgs, FiveLoadOptions, Work, Works, State } from "@realsee/five"; type FiveProviderPropTypes = { work?: Work | Work[]; initialWork?: Work | Work[]; initialState?: "inherit" | "initial" | Partial>; initialOptions?: number | FiveLoadOptions; initialUserAction?: boolean; onWorksChange?: (works: Works) => void; onStateChange?: (state: State, userAction: boolean) => void; onCurrentStateChange?: (state: State, userAction: boolean) => void; onError?: (error: Error) => void; children: React.ReactNode; }; declare function createFiveProvider(fiveInitArgs?: Omit): { new (props: FiveProviderPropTypes): { /** * five 实例,可以通过 FiveProvider 的 ref.five 获取得到 * 在一些外部调用方面可以尝试使用 */ five: Five; __fiveEventDisposers: (() => void)[]; __fiveDisposeTimer: any; loadWork(works: Work | Work[], state?: "inherit" | "initial" | Partial>, options?: number | FiveLoadOptions, userAction?: boolean): Promise; shouldComponentUpdate(nextProps: FiveProviderPropTypes): boolean; componentDidMount(): void; componentWillUnmount(): void; render(): React.FunctionComponentElement>, options?: number | FiveLoadOptions, userAction?: boolean) => Promise; } | null>>; context: any; setState(state: { renderer?: THREE.WebGLRenderer; } | ((prevState: Readonly<{ renderer?: THREE.WebGLRenderer; }>, props: Readonly) => { renderer?: THREE.WebGLRenderer; } | Pick<{ renderer?: THREE.WebGLRenderer; }, K> | null) | Pick<{ renderer?: THREE.WebGLRenderer; }, K> | null, callback?: (() => void) | undefined): void; forceUpdate(callback?: (() => void) | undefined): void; readonly props: Readonly & Readonly<{ children?: React.ReactNode | undefined; }>; state: Readonly<{ renderer?: THREE.WebGLRenderer; }>; refs: { [key: string]: React.ReactInstance; }; componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void; getSnapshotBeforeUpdate?(prevProps: Readonly, prevState: Readonly<{ renderer?: THREE.WebGLRenderer; }>): any; componentDidUpdate?(prevProps: Readonly, prevState: Readonly<{ renderer?: THREE.WebGLRenderer; }>, snapshot?: any): void; componentWillMount?(): void; UNSAFE_componentWillMount?(): void; componentWillReceiveProps?(nextProps: Readonly, nextContext: any): void; UNSAFE_componentWillReceiveProps?(nextProps: Readonly, nextContext: any): void; componentWillUpdate?(nextProps: Readonly, nextState: Readonly<{ renderer?: THREE.WebGLRenderer; }>, nextContext: any): void; UNSAFE_componentWillUpdate?(nextProps: Readonly, nextState: Readonly<{ renderer?: THREE.WebGLRenderer; }>, nextContext: any): void; }; contextType?: React.Context | undefined; }; type FiveProviderType = ReturnType; export { createFiveProvider, FiveProviderType, FiveProviderPropTypes };