import { Component, ReactNode } from 'react'; import { OperatorFunction } from 'rxjs'; import { Service } from '../services/base/service'; declare type ServiceOrServices = Service | { [key: string]: Service; }; export interface ServiceSubscriptionProps { source: S; filter?: OperatorFunction; shouldSkipDebounce?: boolean; children: (service: S) => ReactNode; } interface ServiceSubscriptionState { source: SubscriptionSource; } interface SubscriptionSource { serviceOrServices: S; filter: OperatorFunction; shouldSkipDebounce: boolean; } /** * Declarative way to subscribe to a service's state changes. * * Safe for use with React async rendering. */ export declare class ServiceSubscription extends Component, ServiceSubscriptionState> { private readonly Subscription; constructor(props: ServiceSubscriptionProps); static getDerivedStateFromProps(nextProps: ServiceSubscriptionProps, prevState: ServiceSubscriptionState): Partial> | null; private readonly renderChildren; render(): JSX.Element; } export {};