import { LitElement, PropertyValues } from 'lit';
import '../poi-selection-frame/poi-selection-frame.js';
export declare enum ObcPoiPointerType {
    Point = "point",
    Button = "button",
    Camera = "camera"
}
export declare enum ObcPoiPointerState {
    Regular = "regular",
    Selected = "selected",
    Active = "active",
    Uncertain = "uncertain"
}
/**
 * `<obc-poi-pointer>` - Target pointer component for point, button, and camera marker shapes.
 *
 * ## Overview
 * Use this component to render compact target indicators when only pointer visuals are needed.
 * Keywords/synonyms: target pointer, reticle marker, focus marker, target indicator.
 *
 * ## Features/Variants
 * - `type` (default `point`):
 *   - `point`: Dot-only pointer.
 *   - `button`: Circular button-sized pointer.
 *   - `camera`: Rectangular camera-sized pointer.
 * - `state` (default `regular`): `regular`, `selected`, `active`, `uncertain`.
 * - Selection frame behavior:
 *   - `point + selected`: Renders indicator selection frame.
 *   - `button + selected`: Renders button selection frame.
 *   - `camera + selected`: Renders custom camera selection frame.
 * - `boxWidth` / `boxHeight` (default `null`): Optional non-negative frame size extras when frame dimensions are used.
 *
 * ## Usage Guidelines
 * - Use `type="point"` for minimal targets.
 * - Use `type="button"` or `type="camera"` when a larger selection footprint is needed.
 * - Provide `boxWidth`/`boxHeight` only when size overrides are intentional.
 *
 * ## Slots/Content
 * This component has no slots.
 *
 * ## Events
 * This component does not emit custom events.
 *
 * ## Best Practices
 * - Drive `type` and `state` from the same state source used by surrounding marker components.
 * - Treat negative `boxWidth` and `boxHeight` as invalid input; they are ignored by design.
 *
 * ## Example
 * ```html
 * <obc-poi-pointer
 *   type="button"
 *   state="selected"
 *   box-width="12"
 *   box-height="8"
 * ></obc-poi-pointer>
 * ```
 */
export declare class ObcPoiPointer extends LitElement {
    type: ObcPoiPointerType;
    state: ObcPoiPointerState;
    boxWidth: number | null;
    boxHeight: number | null;
    private filteredBoxWidth;
    private filteredBoxHeight;
    private boxFilterTargetWidth;
    private boxFilterTargetHeight;
    private boxFilterInitialized;
    private lastFilterTimestampMs;
    private boxFilterRaf;
    private get shouldUseBoxDimensions();
    private get resolvedBoxWidth();
    private get resolvedBoxHeight();
    private get targetBoxWidth();
    private get targetBoxHeight();
    private filterBoxValue;
    private applyPointerSize;
    private stepBoxFilter;
    private syncBoxFilterTargets;
    disconnectedCallback(): void;
    private get wrapperStyle();
    private renderSquareSelectionFrame;
    private renderCameraSelectionFrame;
    private renderPoint;
    private renderButton;
    private renderCamera;
    render(): import('lit-html').TemplateResult<1>;
    protected updated(_changedProperties: PropertyValues): void;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-poi-pointer': ObcPoiPointer;
    }
}
//# sourceMappingURL=poi-pointer.d.ts.map