import type PointSizeAlgorithm from "./PointSizeAlgorithm.js";

/** @since 5.0 */
export interface PointSizeFixedSizeAlgorithmProperties extends Partial<Pick<PointSizeFixedSizeAlgorithm, "size" | "useRealWorldSymbolSizes">> {}

/** @since 5.0 */
export default class PointSizeFixedSizeAlgorithm extends PointSizeAlgorithm {
  /** @since 5.0 */
  constructor(properties?: PointSizeFixedSizeAlgorithmProperties);
  /**
   * Point size in meters (`useRealWorldSymbolSizes = true`) or points.
   *
   * @default 0
   * @since 5.0
   */
  accessor size: number;
  /**
   * The algorithm type.
   *
   * @since 5.0
   */
  readonly type: "fixed-size";
  /**
   * Specifies whether `size` is in real world units or screen-space units.
   *
   * @since 5.0
   */
  accessor useRealWorldSymbolSizes: boolean | null | undefined;
}