import { SlLanguageWebComponent } from './language/LanguageManager';
import { SlMediaTypeWebComponent } from './mediaType/MediaTypeManager';
import { AllStoreState } from './store';
export type SlAllWebComponent<S> = SlMediaTypeWebComponent<S> & SlLanguageWebComponent<S>;
/**
 * Provides a proxy object for a component to all manager.
 * During construction, it add a store on a given component (specifically
 * on its DOM node) and init to manage all shared properties.
 *
 *
 * How to use managers
 *
 * Decide what you need based on that use a specific manager or these one with all manager defined. Master class of the component must use what kind of manager you need for sub component 99% of the time you just need to define a store manager et retrieve values from store.
 *
 * - If you want to just get some values defined in the manager define in the stencil component a value with the same name as defined in type WebComponent. this[nameOfValue]
 * - If you want to re-render when some values changes define the value with an @state or @props(mutable).
 * - If you want to trigger changes from manager class in sub component when some values changes create the manager with a store.
 * - If you want to trigger changes from you own store in sub component when some values changes create just a store manager.
 *
 * @param cmp Component that requests managers.
 * @param initialState Default state of the store.
 * @param createStore Init the store of not.
 */
export declare class AllManagers<C extends SlAllWebComponent<S>, S extends AllStoreState> {
    private languageManager;
    private mediaTypeManager;
    constructor(cmp: C, initialState?: S, createStore?: boolean, isInitializeStateWithCmp?: boolean, createAutoCallback?: boolean);
    init(): void;
}
