import type { DropListRef } from './DropListRef';
/**
 * Configuration for drop list group.
 *
 * @public
 */
export interface IDropListGroupRefConfig {
    /**
     * Whether the group is disabled.
     *
     * @defaultValue false
     */
    disabled?: boolean;
}
/**
 * Reference to a drop list group.
 * Manages automatic connection of multiple drop lists.
 *
 * @public
 */
export declare class DropListGroupRef<TItem = any> {
    private readonly _dropLists;
    private _disabled;
    /**
     * Create a new DropListGroupRef.
     *
     * @param config - Configuration options.
     */
    constructor(config?: IDropListGroupRefConfig);
    /**
     * Get whether the group is disabled.
     *
     * @public
     */
    get disabled(): boolean;
    /**
     * Set whether the group is disabled.
     *
     * @public
     */
    set disabled(value: boolean);
    /**
     * Get all registered drop lists.
     *
     * @public
     */
    get dropLists(): ReadonlySet<DropListRef<any, TItem>>;
    /**
     * Register a drop list with this group.
     *
     * @param dropList - Drop list to register.
     *
     * @public
     */
    registerDropList(dropList: DropListRef<any, TItem>): void;
    /**
     * Unregister a drop list from this group.
     *
     * @param dropList - Drop list to unregister.
     *
     * @public
     */
    unregisterDropList(dropList: DropListRef<any, TItem>): void;
    /**
     * Dispose of the group and clean up.
     *
     * @public
     */
    dispose(): void;
    /**
     * Update connections between all drop lists.
     * Each list will be connected to all other lists in the group.
     *
     * @private
     */
    private _updateConnections;
}
/**
 * Create a new DropListGroupRef.
 *
 * @param config - Configuration options.
 * @returns New DropListGroupRef instance.
 *
 * @public
 */
export declare function createDropListGroupRef<TItem = any>(config?: IDropListGroupRefConfig): DropListGroupRef<TItem>;
//# sourceMappingURL=DropListGroupRef.d.ts.map