import { FacileDanmaku, FacileOptions } from './facile';
import type { Position, DanmakuType, DanmakuPlugin } from '../types';
export interface FlexibleOptions<T> extends FacileOptions<T> {
  position?: Position;
}
export declare class FlexibleDanmaku<T> extends FacileDanmaku<T> {
  _options: FlexibleOptions<T>;
  position: Position;
  type: DanmakuType;
  constructor(_options: FlexibleOptions<T>);
  /**
   * @internal
   */
  _getSpeed(): number;
  /**
   * @internal
   */
  _setOff(): Promise<void>;
  /**
   * @internal
   */
  _setStartStatus(): void;
  /**
   * @internal
   */
  _updatePosition(p: Partial<Position>): void;
  /**
   * @internal
   */
  _getMovePercent(useInitData?: boolean): number;
  /**
   * @internal
   */
  _getMoveDistance(): number;
  /**
   * @internal
   */
  _format(): void;
  pause(_flag?: Symbol): void;
  resume(_flag?: Symbol): void;
  remove(pluginName: string): void;
  use(
    plugin: DanmakuPlugin<T> | ((danmaku: this) => DanmakuPlugin<T>),
  ): DanmakuPlugin<T> & {
    name: string;
  };
}
