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
 *
 * @slot - The default slot for the content to be resized.
 *
 * @csspart thumb ${ResizeDirection.East} - The thumb ${ResizeDirection.East} part.
 * @csspart thumb ${ResizeDirection.North} - The thumb ${ResizeDirection.North} part.
 * @csspart thumb ${ResizeDirection.NorthEast} - The thumb ${ResizeDirection.NorthEast} part.
 * @csspart thumb ${ResizeDirection.NorthWest} - The thumb ${ResizeDirection.NorthWest} part.
 * @csspart thumb ${ResizeDirection.South} - The thumb ${ResizeDirection.South} part.
 * @csspart thumb ${ResizeDirection.SouthEast} - The thumb ${ResizeDirection.SouthEast} part.
 * @csspart thumb ${ResizeDirection.SouthWest} - The thumb ${ResizeDirection.SouthWest} part.
 * @csspart thumb ${ResizeDirection.West} - The thumb ${ResizeDirection.West} part.
 *
 * @cssprop {String} --resize-font-family - The font family CSS custom property.
 * @cssprop {String} --resize-font-letter-spacing - The font letter spacing CSS custom property.
 * @cssprop {String} --resize-font-line-height - The font line height CSS custom property.
 * @cssprop {String} --resize-font-size - The font size CSS custom property.
 * @cssprop {String} --resize-font-text-decoration - The font text decoration CSS custom property.
 * @cssprop {String} --resize-font-text-transform - The font text transform CSS custom property.
 * @cssprop {String} --resize-font-weight - The font weight CSS custom property.
 * @cssprop {String} --resize-gap - The gap CSS custom property.
 * @cssprop {String} --resize-padding-bottom - The padding bottom CSS custom property.
 * @cssprop {String} --resize-padding-left - The padding left CSS custom property.
 * @cssprop {String} --resize-padding-right - The padding right CSS custom property.
 * @cssprop {String} --resize-padding-top - The padding top CSS custom property.
 * @cssprop {String} --resize-shadow - The shadow CSS custom property.
 * @cssprop {String} --resize-shadow-blur - The shadow blur CSS custom property.
 * @cssprop {String} --resize-shadow-color - The shadow color CSS custom property.
 * @cssprop {String} --resize-shadow-offset-x - The shadow offset x CSS custom property.
 * @cssprop {String} --resize-shadow-offset-y - The shadow offset y CSS custom property.
 * @cssprop {String} --resize-shadow-spread - The shadow spread CSS custom property.
 * @cssprop {String} --resize-transition-duration - The transition duration CSS custom property.
 * @cssprop {String} --resize-transition-mode - The transition mode CSS custom property.
 * @cssprop {String} --resize-transition-property - The transition property CSS custom property.
 * @cssprop {String} --resize-translate - The translate CSS custom property.
 *
 * @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.
 *
 * @dependency mosaik-thumb - The Thumb element.
 *
 * @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 `ResizeElement` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `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