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) & 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 title - The title content of the column header
 * @slot meta - Metadata content (badges, counts, KPIs)
 * @slot actions - Action buttons for the column
 * @slot footer - Footer content (usually contains a composer)
 * @slot empty - Content to show when the column has no items
 *
 * @csspart container - The main container element
 * @csspart header - The column header section
 * @csspart title - The title wrapper
 * @csspart meta - The meta information wrapper
 * @csspart actions - The actions wrapper
 * @csspart body - The main body containing items
 * @csspart footer - The footer section
 * @csspart empty - The empty state container
 *
 * @cssprop {Color} --flow-board-column-background-color - Background color of the column
 * @cssprop {String} --flow-board-column-border-radius - Border radius of the column
 * @cssprop {String} --flow-board-column-padding - Internal padding
 * @cssprop {String} --flow-board-column-gap - Gap between items
 * @cssprop {String} --flow-board-column-min-width - Minimum width of the column
 * @cssprop {String} --flow-board-column-max-width - Maximum width of the column
 *
 * @fires flowBoardBeforeColumnPinChange {FlowBoardBeforeColumnPinChangeEvent} - Fired before pin state changes
 * @fires flowBoardColumnPinChange {FlowBoardColumnPinChangeEvent} - Fired when pin state changes
 *
 * @dependency FlowBoardColumnItemElement - Item component
 * @dependency FlowBoardColumnItemComposerElement - Composer component
 *
 * @example
 * ```html
 * <mosaik-flow-board-column column-key="todo" reorderable>
 *   <div slot="title">To Do</div>
 *   <div slot="meta"><mosaik-badge>5</mosaik-badge></div>
 *   <mosaik-flow-board-column-item>Item 1</mosaik-flow-board-column-item>
 *   <mosaik-flow-board-column-item>Item 2</mosaik-flow-board-column-item>
 *   <mosaik-flow-board-column-item-composer slot="footer">
 *     <mosaik-button slot="trigger">Add item</mosaik-button>
 *   </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 _slotController;
    private readonly _inheritance;
    private readonly _provider;
    /**
     * 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>;
    /**
     * 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