import { VNode } from "vue";
import { Block, BlockLayoutSettings, SectionSettings } from "../../../../models";
import { ThemingRenditionManager } from "../../";
import { LayoutItem } from "../../../../models";
import { LayoutCanvasStore, BlockCatalogStore } from "../../";
import { VueComponentBaseProps, VueComponentBase, VueComponentBaseEvents } from "../../../VueComponentBase";
import { SettingsService, MediaPickerService } from "../../../../services";
import { UserTargetingStore, BlockTitleSettingsStore, MultilingualStore } from "../../../../stores";
import { SubscriptionHandler } from "../../../..";
import { BlockInstance, LayoutMediaContext, LayoutFileContext, ThemeStore } from "../../../";
import { AnchorLink } from "../../../AnchorLink";
import { OmniaContext } from "../../../../contexts";
export interface BlockRendererProps extends VueComponentBaseProps {
    block: Block;
    parentContainer: LayoutItem;
    settings: SectionSettings;
}
interface BlockRendererEvents extends VueComponentBaseEvents {
    onGetBlock?: {
        blockGetterFunc: (block: Block) => void;
    };
    onBlockInstanceCreated?: BlockInstance;
    onBlockInstanceCacheKeyUpdated?: BlockInstance;
}
export declare class LayoutBlockRenderer extends VueComponentBase<BlockRendererProps, BlockRendererEvents> {
    block: Block;
    parentContainer: LayoutItem;
    settings: SectionSettings;
    useClickProtection: boolean;
    protected settingsService: SettingsService<any>;
    layoutEditorStore: LayoutCanvasStore;
    layoutMediaContext: LayoutMediaContext;
    layoutFileContext: LayoutFileContext;
    blockTitleSettingsStore: BlockTitleSettingsStore;
    targetingStore: UserTargetingStore;
    layoutItemStore: BlockCatalogStore;
    mediaPickerService: MediaPickerService;
    themeStore: ThemeStore;
    themingRenditionManager: ThemingRenditionManager;
    subscriptionHandler: SubscriptionHandler;
    omniaContext: OmniaContext;
    multilingualStore: MultilingualStore;
    blockInstance: BlockInstance;
    anchorLink: AnchorLink;
    private subscriptionPrintHandler;
    private isHideBlock;
    private targetCurrentUser;
    private isEditMode;
    private isLazyLoad;
    private isHideBlockInPrint;
    private isRenderInViewPort;
    onBlockChanged(): void;
    beforeCreate(): void;
    created(): void;
    private subcribeOnPrint;
    beforeDestroy(): void;
    private scrollIntoViewDisabled;
    private handleAnchorLink;
    private get backgroundImage();
    /**
     * Creates the element
     * @param h
     */
    createElement(): VNode;
    private getThemeTargetId;
    private createAnchorElement;
    private getAnchorName;
    hideBlock(isHide: boolean): void;
    checkTargetingValue(settings: BlockLayoutSettings): void;
    /**
     * Render
     * @param h
     */
    render(): VueTsxSupport.JSX.Element;
}
export {};
