import { ISlottable } from '../../../Behaviors/Slottable';
import { ResizeGhostFactory } from '../../../Controllers/ResizeContainerController';
import { ContainerResizeMode } from '../../../Types/ContainerResizeMode';
import { CustomElement } from '../../Abstracts/CustomElement';
import { IResizeElementProps } from './IResizeElementProps';
declare const ResizeElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Resize - a container that allows its content to be resized via drag handles.
 *
 * @name ResizeElement
 * @element mosaik-resize
 * @category Layouts
 *
 * @fires resizeResizeStarted {ResizeStartEvent} - Fired when a resize operation is started.
 * @fires resizeResized {ResizingEvent} - Fired when a resize operation is in progress.
 * @fires resizeResizeEnded {ResizeEndEvent} - Fired when a resize operation is ended.
 * @fires resizeResizeCanceled {ResizeCancelEvent} - Fired when a resize operation is canceled.
 *
 * @slot - The default slot for the content to be resized.
 *
 * @example
 * ```html
 * <mosaik-resize mode="immediate">
 *   <div style="width: 200px; height: 150px; background-color: lightgray;">
 *     Resizable Content
 *   </div>
 * </mosaik-resize>
 * ```
 */
export declare class ResizeElement extends ResizeElement_base implements ISlottable, IResizeElementProps {
    private readonly _resizeContainerController;
    private _ghostFactory?;
    private _mode;
    private _active;
    private _hasPointer;
    private _pointerenterSubscription;
    private _pointerleaveSubscription;
    private _containerElement?;
    private readonly _sideThumbElement?;
    private readonly _cornerThumbElement?;
    private readonly _bottomThumbElement?;
    /**
     * Constructs a new instance of the `{@link ResizeElement}` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `mode` property.
     *
     * @public
     * @attr
     */
    get mode(): ContainerResizeMode;
    set mode(value: ContainerResizeMode);
    /**
     * Gets or sets the `active` property.
     *
     * @public
     * @attr
     */
    get active(): boolean;
    set active(value: boolean);
    /**
     * Gets or sets the `ghostFactory` property.
     *
     * @public
     */
    get ghostFactory(): ResizeGhostFactory | undefined;
    set ghostFactory(value: ResizeGhostFactory | undefined);
    /**
     * Gets the `hasPointer` property.
     *
     * @private
     * @readonly
     */
    get hasPointer(): boolean;
    /**
     * @public
     * @override
     */
    disconnectedCallback(): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     * @override
     */
    protected createRenderRoot(): HTMLElement | DocumentFragment;
    /**
     * @private
     */
    private updateResizingState;
    /**
     * @private
     */
    private handleResizeStart;
    /**
     * @private
     */
    private handleResize;
    /**
     * @private
     */
    private handleResizeEnd;
    /**
     * @private
     */
    private handleResizeCancel;
}
/**
 * @public
 */
export declare namespace ResizeElement {
    type Props = IResizeElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-resize': ResizeElement;
    }
}
export {};
//# sourceMappingURL=ResizeElement.d.ts.map