import { DashboardOptionChangedArgs } from '../control-options'; import { DashboardControl } from '../dashboard-control'; import { DashboardControlActions, OptionConsumer } from './_interfaces'; export declare const getEventName: (actionName: string) => string; export declare const getOptionNameByEvent: (eventName: string) => string; export declare const isEventName: (actionName: string) => boolean; export type EventSubscriber = >(eventName: K, eventHandler: (ev: TEvents[K]) => any) => void; export interface OptionsManagerConfig { defaultOptions: TOptions; initOptions: TOptions; optionChanged: (args: DashboardOptionChangedArgs) => DashboardControlActions; dashboardControl: DashboardControl; eventsHolder?: { on: EventSubscriber; off: EventSubscriber; }; extensionName: string; } export declare class OptionsManager implements OptionConsumer { _internalEvents: EventManager; _dashboardControl: DashboardControl; _config: OptionsManagerConfig; initialize(_config: OptionsManagerConfig): void; getDefaultOptions(): TOptions; getInitialOptions(): TOptions; dispose(): void; optionChanged(args: DashboardOptionChangedArgs): DashboardControlActions; raiseEvent>(eventName: K, eventArgs: TEvents[K]): void; get(optionName: Extract): any; set(optionName: Extract, value: any): any; silent(optionName: string, value: any): any; private _set; private _cachedSetters; private _merge; } export declare let mergeOptions: (target: any, source: any, externalCache?: {}) => void; export declare class EventManager { dispose(): void; private _handlers; raise>(eventName: K, eventArgs: TEvents[K]): void; on: EventSubscriber; off: EventSubscriber; }