import { Observable } from 'rxjs'; import { SuspenseSubject } from './SuspenseSubject'; import { ReactFireOptions } from './'; export declare function preloadObservable(source: Observable, id: string): SuspenseSubject; export interface ObservableStatus { /** * The loading status. * * - `loading`: Waiting for the first value from an observable * - `error`: Something went wrong. Check `ObservableStatus.error` for more details * - `success`: The hook has emitted at least one value * * If `initialData` is passed in, this will skip `loading` and go straight to `success`. */ status: 'loading' | 'error' | 'success'; /** * Indicates whether the hook has emitted a value at some point * * If `initialData` is passed in, this will be `true`. */ hasEmitted: boolean; /** * If this is `true`, the hook will be emitting no further items. */ isComplete: boolean; /** * The most recent value. * * If `initialData` is passed in, the first value of `data` will be the valuea provided in `initialData` **UNLESS** the underlying observable is ready, in which case it will skip `initialData`. */ data: T; /** * Any error that may have occurred in the underlying observable */ error: Error | undefined; /** * Promise that resolves after first emit from observable */ firstValuePromise: Promise; } export declare function useObservable(observableId: string, source: Observable, config?: ReactFireOptions): ObservableStatus;