import { LitElement, PropertyValues } from 'lit';
export type ExpandEvent = CustomEvent<{
    expand: boolean;
}>;
/**
 * `<obc-poi-group>` - A POI cluster component that collapses overlapping targets into one trigger and expands them into a spread list.
 *
 * This component wraps multiple `obc-poi-data` elements and manages their collapsed/expanded presentation as a single interactive unit.
 * Use it when nearby targets should be presented as one grouped control until the user expands the group.
 *
 * ### Features
 * - Expand/collapse state: Controlled by `expand`; collapse animation state is exposed through `collapsing`.
 * - Automatic wrapper sizing: Computes collapsed wrapper width/height from slotted target button bounds.
 * - Front-target handling: Keeps one front target visually prioritized while collapsing other targets into overlap state.
 * - Backdrop interaction: Shows a backdrop while expanded and collapses on backdrop click.
 * - Dynamic ordering: `internalSwapping` enables reordering while expanded based on current horizontal positions.
 * - Vertical placement: `positionVertical` sets the wrapper/group top offset used for collapsed positioning.
 *
 * ### Usage Guidelines
 * - Slot only `obc-poi-data` items that should behave as one grouped target set.
 * - Control expand/collapse via the `expand` property, or let the built-in wrapper button toggle expansion.
 * - Use the `expand` event detail to synchronize nearby standalone targets (for example, set outside targets to overlapped while this group is open).
 * - Treat `collapsing` as component-managed runtime state unless you have a specific orchestration need.
 * - **TODO(designer):** Confirm whether external consumers should set `collapsing` directly, or if it should remain fully internal.
 *
 * ### Slots
 * | Slot | Renders When... | Purpose |
 * | --- | --- | --- |
 * | default | Always | Contains grouped `obc-poi-data` targets managed by this component. |
 *
 * ### Events
 * - `expand` - Fired when expand state changes. Detail: `{ expand: boolean }`.
 * - `collapse-finished` - Fired when the collapse animation has fully completed.
 *
 * ### Best Practices
 * - Keep grouped targets positioned consistently so wrapper bounds and front-target selection remain stable.
 * - Prefer one `obc-poi-group` per overlap cluster rather than nesting groups.
 * - Use `internalSwapping` only when live target crossing should reorder expanded items.
 *
 * ### Example
 * ```html
 * <obc-poi-group positionVertical="240px">
 *   <obc-poi-data x="300" button-y="240" y="240"></obc-poi-data>
 *   <obc-poi-data x="320" button-y="240" y="240"></obc-poi-data>
 *   <obc-poi-data x="340" button-y="240" y="240"></obc-poi-data>
 * </obc-poi-group>
 * ```
 *
 * @slot - Default slot for grouped `obc-poi-data` targets.
 * @fires expand {CustomEvent<{expand:boolean}>} Fired when the group expand state changes.
 * @fires collapse-finished {CustomEvent<void>} Fired after collapse animation completes.
 */
export declare class ObcPoiGroup extends LitElement {
    expand: boolean;
    collapsing: boolean;
    positionVertical: string;
    internalSwapping: boolean;
    private wrapperOffsetX;
    private wrapperWidth;
    private wrapperVisible;
    private wrapperHeight;
    private wrapperHasValues;
    _children: Array<HTMLElement>;
    private boundUpdatePosition;
    private topOffsetAnimationManager;
    private topOffsetProgress;
    private slotChangeRaf;
    private topOffsetTargets;
    private lockedExpandedCenter;
    private collapseDeltas;
    private topOffsetAnimationTarget;
    constructor();
    firstUpdated(_changedProperties: PropertyValues): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    updated(changedProperties: PropertyValues): void;
    willUpdate(changedProperties: PropertyValues): void;
    onBackdropClick(event: Event): void;
    render(): import('lit-html').TemplateResult<1>;
    updatePosition(): void;
    private onSlotChange;
    private ensureFrontChildOnTop;
    onClick(): void;
    setExpandedChildren(expand: boolean): void;
    private calculateTopOffsetTargets;
    private topOffsetDelayTimeout;
    refreshExpandedLayout(preserveCenter?: boolean): void;
    private animateTopOffset;
    private runTopOffsetAnimation;
    private applyTopOffsetState;
    private getFrontChild;
    private syncFrontChild;
    private expandedLoopRunning;
    private startExpandedObserver;
    private runExpandedLoop;
    private stopExpandedObserver;
    private scheduleExpandedOffsets;
    private lastAppliedOffsets;
    private lastTargetOrder;
    private updateExpandedOffsets;
    private getCurrentLeft;
    private getTargetButtonRect;
    private getCssVarAsNumber;
    private getTouchTargetSize;
    private getExpandedSpacing;
    private getVisualTargetSize;
    private applyVisualState;
    private clearVisualState;
    private setOverlappedDataHeight;
    private resolveTargetValue;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-poi-group': ObcPoiGroup;
    }
}
//# sourceMappingURL=poi-group.d.ts.map