import { Observable } from 'rxjs'; import { Service } from '../../services/base/service'; import { Editor, EditorServices } from './editor'; /** * Creates a editor that switches and proxies to different editors over time. * * @param initialEditor * The initial editor to proxy to. * @param editor$ * Subsequent editors to proxy to. * @param getSwitchEffects * Observable factory for side-effects to perform when switching to a new editor. The provided Observable will * immediately emit with the service that is current at the time of subscription, similar to a BehaviorSubject. * @param privateServices * Additional services to mix into the side effects stream. Private services get the lowest priority, * unless they are also a dependency of one of the public services. */ export declare function createSwitchingEditor, S extends EditorServices = T extends Editor ? TS : never>(initialEditor: T, editor$: Observable, ...privateServices: Service[]): T;