/// <reference types="jquery" />
import { DeferredGlassPaneTarget, DisplayParent, Event, EventHandler, GlassPaneTarget, Session, Widget } from '../index';
/**
 * Renders glassPanes over the 'glassPaneTargets' of a widget.
 */
export declare class GlassPaneRenderer {
    session: Session;
    protected _widget: Widget & {
        displayParent?: DisplayParent;
    };
    protected _enabled: boolean;
    protected _$glassPanes: JQuery[];
    protected _deferredGlassPanes: DeferredGlassPaneTarget[];
    protected _resolvedDisplayParent: DisplayParent;
    protected _registeredDisplayParent: DisplayParent;
    protected _displayParentRenderHandler: EventHandler;
    protected _glassPaneRemoveHandler: (event: JQuery.TriggeredEvent) => void;
    protected _glassPaneRendererRegistered: boolean;
    /**
     * @param widget Required
     * @param enabled Optional. Default is true
     */
    constructor(widget: Widget, enabled?: boolean);
    renderGlassPanes(): void;
    renderGlassPane(target: GlassPaneTarget): void;
    protected _adjustGlassPaneSize($glassPane: JQuery, $glassPaneTarget: JQuery): void;
    removeGlassPanes(): void;
    protected _removeGlassPane($glassPane: JQuery): void;
    eachGlassPane(func: ($glassPane: JQuery) => void): void;
    findGlassPaneTargets(): GlassPaneTarget[];
    protected _resolveDisplayParent(): DisplayParent;
    protected _registerDisplayParent(): void;
    protected _unregisterDisplayParent(): void;
    protected _onMouseDown(event: JQuery.MouseDownEvent): void;
    protected _onDisplayParentRender(event: Event<DisplayParent>): void;
    protected _onGlassPaneRemove(event: JQuery.TriggeredEvent): void;
}
//# sourceMappingURL=GlassPaneRenderer.d.ts.map