import { Observable, ObservedValueOf, Subject } from 'rxjs'; import { SettingsInterface } from './SettingsInterface'; import { CoreInputSettings, CoreOutputSettings } from './types'; export declare abstract class SettingsManagerOverload implements SettingsInterface { protected inputSettings: InputSettings; protected outputSettings: OutputSettings; protected outputSettingsUpdateSubject: Subject; protected settingsManager: SettingsInterface; values$: Observable; constructor(initialSettings: Partial, settingsManager: SettingsInterface); abstract getDefaultSettings(): InputSettings; abstract computeOutputSettings(inputSettings: InputSettings): OutputSettings; abstract hasSettingsChanged(newOutputSettings: OutputSettings): boolean; abstract getCleanedParentInputSettings(settings: Partial): ParentInputSettings; _prepareUpdate(settings: Partial): { hasChanged: boolean; commit: () => OutputSettings & ParentOutputSettings; }; update(settings: Partial): void; get values(): ParentOutputSettings & OutputSettings; watch>(key: K): Observable<(ParentOutputSettings & OutputSettings)[K]>; watch>(keys: K[]): Observable>; destroy(): void; }