import React from "react"; import Realm, { App } from "realm"; import { RestrictivePick } from "./helpers"; /** Mutually exclusive props for the AppProvider component when using a {@link Realm.AppConfiguration} */ type AppProviderWithConfigurationProps = Omit & { /** * A ref to the App instance. This is useful if you need to access the App * instance outside of a component that uses the App hooks. */ appRef?: React.MutableRefObject; children: React.ReactNode; }; /** Props the AppProvider component when using an existing {@link Realm.App} instance */ type AppProviderWithAppProps = { app: Realm.App; children: React.ReactNode; }; /** Combined props for the AppProvider component, used when defining mutually exclusive props */ type AppProviderProps = AppProviderWithAppProps & AppProviderWithConfigurationProps; /** Mutually exclusive props for the AppProvider component when using an existing {@link Realm.App} instance */ type DynamicAppProviderWithAppProps = RestrictivePick; /** Mutually exclusive props for the AppProvider component when using a {@link Realm.AppConfiguration} */ type DynamicAppProviderWithConfigurationProps = RestrictivePick; /** * Props for the AppProvider component. You can either pass an existing {@link Realm.App} through the `app` prop * or props that replicate the {@link Realm.AppConfiguration} that is used to create a Realm.App instance. */ type DynamicAppProviderProps = DynamicAppProviderWithAppProps | DynamicAppProviderWithConfigurationProps; /** * React component providing a Realm App instance on the context for the * sync hooks to use. An `AppProvider` is required for an app to use the hooks. * @param props - Either the {@link Realm.AppConfiguration} for App Services passed as props **or** the {@link Realm.App} passed through the `app` prop. * @param appRef - Provides a ref to the app instance, which can be used to access the app instance outside of the React component tree. **Not available when using the `app` prop**. */ export declare function AppProvider(props: DynamicAppProviderProps): React.ReactNode; /** * React component providing a Realm App instance on the context for the * sync hooks to use. An `AppProvider` is required for an app to use the hooks. * @param props - The {@link Realm.AppConfiguration} for App Services, passed as props. * @param appRef - A ref to the app instance, which can be used to access the app instance outside of the React component tree. */ export declare function AppProvider(props: DynamicAppProviderWithConfigurationProps): React.ReactNode; /** * React component providing a Realm App instance on the context for the * sync hooks to use. An `AppProvider` is required for an app to use the hooks. * @param app - The {@link Realm.App} for the provider. */ export declare function AppProvider(props: DynamicAppProviderWithAppProps): React.ReactNode; /** * Hook to access the current {@link Realm.App} from the {@link AppProvider} context. * @throws if an AppProvider does not exist in the component’s ancestors */ export declare const useApp: >() => Realm.App; export declare const useAuthResult: () => [import("./types").OperationResult, React.Dispatch>]; export {}; //# sourceMappingURL=AppProvider.d.ts.map