import React from 'react';
import { IntlShape } from 'react-intl';
import { addEffect, updateEffect, removeEffect, reorderEffect, ActionHandler } from '@kepler.gl/actions';
import { Effect } from '@kepler.gl/types';
import { VisState } from '@kepler.gl/schemas';
import SidePanelTitleFactory from './side-panel-title';
import EffectListFactory from './effect-list';
import EffectTypeSelectorFactory from './effect-type-selector';
export type EffectManagerState = {
    visState: VisState;
    visStateActions: {
        addEffect: ActionHandler<typeof addEffect>;
        updateEffect: ActionHandler<typeof updateEffect>;
        removeEffect: ActionHandler<typeof removeEffect>;
        reorderEffect: ActionHandler<typeof reorderEffect>;
    };
    effects: Effect[];
    effectOrder: string[];
    children: React.ReactNode;
};
export type EffectManagerProps = EffectManagerWithIntlProp & EffectManagerState;
export type EffectManagerWithIntlProp = {
    intl: IntlShape;
};
declare function EffectManagerFactory(EffectList: ReturnType<typeof EffectListFactory>, SidePanelTitle: ReturnType<typeof SidePanelTitleFactory>, EffectTypeSelector: ReturnType<typeof EffectTypeSelectorFactory>): React.FC<EffectManagerProps>;
declare namespace EffectManagerFactory {
    var deps: (typeof EffectListFactory | (() => React.FC<import("./side-panel-title").PanelTitleProps>) | typeof EffectTypeSelectorFactory)[];
}
export default EffectManagerFactory;
