import type { DragRef, DropListRef } from '../../../../DragDrop';
import { CustomElement } from '../../Abstracts/CustomElement';
import { FlowBoardColumnItemElement } from './FlowBoardColumnItemElement';
import { IFlowBoardColumnElementProps } from './IFlowBoardColumnElementProps';
declare const FlowBoardColumnElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Slottable").ISlottableProps & import("../../../Behaviors/Slottable").ISlottable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * FlowBoardColumn - A column in a FlowBoard.
 *
 * Represents a single column in a FlowBoard, containing items and optional header/footer.
 * Supports reordering, pinning, and empty state rendering.
 *
 * @name FlowBoardColumnElement
 * @element mosaik-flow-board-column
 * @category Layouts
 *
 * @slot - Default slot for FlowBoardColumnItem elements
 * @slot actions - Action buttons for the column
 * @slot empty - Content to show when the column has no items
 * @slot footer - Footer content (usually contains a composer)
 * @slot meta - Metadata content (badges, counts, KPIs)
 * @slot title - The title content of the column header
 *
 * @csspart actions - The actions wrapper
 * @csspart body - The main body containing items
 * @csspart container - The main container element
 * @csspart empty - The empty state container
 * @csspart footer - The footer section
 * @csspart header - The column header section
 * @csspart meta - The meta information wrapper
 * @csspart title - The title wrapper
 *
 * @cssprop {Color} --flow-board-column-background-color - Background color of the column
 * @cssprop {String} --flow-board-column-body-padding-bottom - The board column body padding bottom CSS custom property.
 * @cssprop {String} --flow-board-column-body-padding-left - The board column body padding left CSS custom property.
 * @cssprop {String} --flow-board-column-body-padding-right - The board column body padding right CSS custom property.
 * @cssprop {String} --flow-board-column-body-padding-top - The board column body padding top CSS custom property.
 * @cssprop {String} --flow-board-column-border-color - The board column border color CSS custom property.
 * @cssprop {String} --flow-board-column-border-radius - Border radius of the column
 * @cssprop {String} --flow-board-column-border-style - The board column border style CSS custom property.
 * @cssprop {String} --flow-board-column-border-width - The board column border width CSS custom property.
 * @cssprop {String} --flow-board-column-font-family - The board column font family CSS custom property.
 * @cssprop {String} --flow-board-column-font-letter-spacing - The board column font letter spacing CSS custom property.
 * @cssprop {String} --flow-board-column-font-line-height - The board column font line height CSS custom property.
 * @cssprop {String} --flow-board-column-font-size - The board column font size CSS custom property.
 * @cssprop {String} --flow-board-column-font-text-decoration - The board column font text decoration CSS custom property.
 * @cssprop {String} --flow-board-column-font-text-transform - The board column font text transform CSS custom property.
 * @cssprop {String} --flow-board-column-font-weight - The board column font weight CSS custom property.
 * @cssprop {String} --flow-board-column-footer-padding-bottom - The board column footer padding bottom CSS custom property.
 * @cssprop {String} --flow-board-column-footer-padding-left - The board column footer padding left CSS custom property.
 * @cssprop {String} --flow-board-column-footer-padding-right - The board column footer padding right CSS custom property.
 * @cssprop {String} --flow-board-column-footer-padding-top - The board column footer padding top CSS custom property.
 * @cssprop {String} --flow-board-column-gap - Gap between items
 * @cssprop {String} --flow-board-column-header-background-color - The board column header background color CSS custom property.
 * @cssprop {String} --flow-board-column-header-padding-bottom - The board column header padding bottom CSS custom property.
 * @cssprop {String} --flow-board-column-header-padding-left - The board column header padding left CSS custom property.
 * @cssprop {String} --flow-board-column-header-padding-right - The board column header padding right CSS custom property.
 * @cssprop {String} --flow-board-column-header-padding-top - The board column header padding top CSS custom property.
 * @cssprop {String} --flow-board-column-max-width - Maximum width of the column
 * @cssprop {String} --flow-board-column-min-width - Minimum width of the column
 * @cssprop {String} --flow-board-column-padding-bottom - The board column padding bottom CSS custom property.
 * @cssprop {String} --flow-board-column-padding-left - The board column padding left CSS custom property.
 * @cssprop {String} --flow-board-column-padding-right - The board column padding right CSS custom property.
 * @cssprop {String} --flow-board-column-padding-top - The board column padding top CSS custom property.
 * @cssprop {String} --flow-board-column-shadow - The board column shadow CSS custom property.
 * @cssprop {String} --flow-board-column-shadow-blur - The board column shadow blur CSS custom property.
 * @cssprop {String} --flow-board-column-shadow-color - The board column shadow color CSS custom property.
 * @cssprop {String} --flow-board-column-shadow-offset-x - The board column shadow offset x CSS custom property.
 * @cssprop {String} --flow-board-column-shadow-offset-y - The board column shadow offset y CSS custom property.
 * @cssprop {String} --flow-board-column-shadow-spread - The board column shadow spread CSS custom property.
 * @cssprop {String} --flow-board-column-transition-duration - The board column transition duration CSS custom property.
 * @cssprop {String} --flow-board-column-transition-mode - The board column transition mode CSS custom property.
 * @cssprop {String} --flow-board-column-transition-property - The board column transition property CSS custom property.
 * @cssprop {String} --flow-board-column-translate - The board column translate CSS custom property.
 *
 * @fires flowBoardBeforeColumnPinChange {FlowBoardBeforeColumnPinChangeEvent} - Fired before pin state changes
 * @fires flowBoardColumnPinChange {FlowBoardColumnPinChangeEvent} - Fired when pin state changes
 *
 * @example
 * ```html
 * <mosaik-flow-board-column column-key="todo" reorderable>
 *   <div slot="title">To Do</div>
 *   <mosaik-flow-board-column-item item-key="task-1">
 *     <span slot="title">Task 1</span>
 *   </mosaik-flow-board-column-item>
 *   <mosaik-flow-board-column-item item-key="task-2">
 *     <span slot="title">Task 2</span>
 *   </mosaik-flow-board-column-item>
 *   <mosaik-flow-board-column-item-composer slot="footer"></mosaik-flow-board-column-item-composer>
 * </mosaik-flow-board-column>
 * ```
 *
 * @public
 */
export declare class FlowBoardColumnElement extends FlowBoardColumnElement_base implements IFlowBoardColumnElementProps {
    private _columnKey;
    private _reorderable;
    private _pinned;
    private _hasItems;
    private readonly _flowBoardBeforeColumnPinChange;
    private readonly _flowBoardColumnPinChange;
    private readonly _inheritance;
    private readonly _provider;
    private readonly _dragCtrl;
    private readonly _itemDropList;
    /**
     * Constructs a new instance of the `FlowBoardColumnElement` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the unique key for the column.
     * If not provided, a key will be generated on connect.
     *
     * @public
     * @attr column-key
     */
    get columnKey(): string;
    set columnKey(value: string);
    /**
     * Gets or sets whether the column can be reordered.
     * Column can only be dragged if this is true, board has dragdrop, and column is not pinned.
     *
     * @public
     * @attr
     */
    get reorderable(): boolean;
    set reorderable(value: boolean);
    /**
     * Gets or sets whether the column is pinned (fixed position).
     * Pinned columns cannot be dragged and their index is preserved during reordering.
     *
     * @public
     * @attr
     */
    get pinned(): boolean;
    set pinned(value: boolean);
    /**
     * Whether the column has any items in the default slot.
     *
     * @public
     * @readonly
     */
    get hasItems(): boolean;
    /**
     * Whether drag and drop is enabled from the parent board.
     *
     * @public
     * @readonly
     */
    get isDragEnabled(): boolean;
    /**
     * Whether the column can currently be dragged.
     * Returns true only if reorderable, not pinned, and drag is enabled on the board.
     *
     * @public
     * @readonly
     */
    get canDrag(): boolean;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * Gets all item elements in this column.
     *
     * @public
     * @returns Array of FlowBoardColumnItemElement.
     */
    getItems(): Array<FlowBoardColumnItemElement>;
    /**
     * Returns this column's DragRef for registration with a parent DropList.
     *
     * @public
     * @returns The DragRef or null.
     */
    getDragRef(): DragRef | null;
    /**
     * Returns this column's item DropListRef for cross-column connectivity.
     *
     * @public
     * @returns The DropListRef or null.
     */
    getDropListRef(): DropListRef | null;
    /**
     * Discovers item DragRefs and registers them with this column's DropList.
     * Should be called after slot changes when items are added/removed.
     *
     * @public
     */
    syncItemDragRefs(): void;
    /**
     * Gets the pinned items in this column.
     *
     * @public
     * @returns Array of pinned FlowBoardColumnItemElement.
     */
    getPinnedItems(): Array<FlowBoardColumnItemElement>;
    /**
     * Gets the non-pinned items in this column.
     *
     * @public
     * @returns Array of non-pinned FlowBoardColumnItemElement.
     */
    getNonPinnedItems(): Array<FlowBoardColumnItemElement>;
    /**
     * Sets the pinned state with event support.
     *
     * @public
     * @param pinned The new pinned state.
     */
    setPinned(pinned: boolean): void;
    protected onPinnedChanged(_prev: boolean, _next: boolean): void;
    private updateHasItems;
}
/**
 * @public
 */
export declare namespace FlowBoardColumnElement {
    type Props = IFlowBoardColumnElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-flow-board-column': FlowBoardColumnElement;
    }
}
export {};
//# sourceMappingURL=FlowBoardColumnElement.d.ts.map