import { DynamicManager, WithUnderscoreAliases } from '../DynamicManager';
import { SlWebComponent } from '../store/StoreManager';
import { MediaType, Size } from './constants';
import { MediaTypeStoreState } from './store';
export type SlMediaTypeWebComponent<S> = SlWebComponent<S> & WithUnderscoreAliases<{
    mediaName?: string | null;
    isMobile?: boolean;
    isTablet?: boolean;
    isDesktop?: boolean;
}> & {
    mapSizeToMediaTypes?: MediaType;
    sizesList?: Size[];
};
/**
 * Provides a proxy object for a component to a media type.
 * During construction, it add a store on a given component (specifically
 * on its DOM node) and init to manage media type correctly.
 * @param cmp Component that requests the store.
 *
 * More information on All Manager
 *
 * @param initialState Default state of this store.
 * @param createStore Init the store of not.
 */
export declare class MediaTypeManager<C extends SlMediaTypeWebComponent<S>, S extends MediaTypeStoreState> extends DynamicManager<C, S> {
    private delayedMatchMediaId;
    private get sizesList();
    private get mapSizeToMediaTypes();
    constructor(cmp: C, initialState?: S, createStore?: boolean);
    destroy(): void;
    /**
     * init the mediaName if the window of the size name.
     */
    initMediaTypeManager(): void;
    /**
     * Update the mediaName if the window of the size is changing. Add a delay to avoid multiple call.
     * @param q
     */
    private handleMatchMediaChange;
    /**
     * General rules for media queries
     */
    private generateSizeRules;
    /** return the media type base on string size name */
    private getMediaTypeName;
    private updateValues;
}
