import { Axis, TextBox } from "../components/index.js";
/**
    Creates an interactive timeline brush component for selecting time periods within a visualization.
*/
export default class Timeline extends Axis {
    _brushing: boolean;
    _brushFilter: (event: unknown) => boolean;
    _brushMin: () => number;
    _buttonAlign: string;
    _buttonBehavior: string;
    _buttonBehaviorCurrent: string;
    _buttonPadding: number;
    _buttonHeight: number;
    _handleConfig: Record<string, unknown>;
    _handleSize: number;
    _hiddenHandles: boolean;
    _on: Record<string, (...args: unknown[]) => unknown>;
    _playButton: boolean;
    _playButtonClass: TextBox;
    _playButtonConfig: Record<string, unknown>;
    _playButtonInterval: number;
    _playTimer: ReturnType<typeof setInterval> | false;
    _selection: unknown;
    _selectionConfig: Record<string, unknown>;
    _snapping: boolean;
    _brush: any;
    _brushGroup: any;
    _paddingLeft: number;
    _ticksWidth: number;
    /**
        Invoked when creating a new class instance, and overrides any default parameters inherited from Axis.
        @private
  */
    constructor();
    /**
        Triggered on brush "brush".
        @private
  */
    _brushBrush(event: Record<string, unknown>): void;
    /**
        Triggered on brush "end".
        @private
  */
    _brushEnd(event: Record<string, unknown>): void;
    /**
        Triggered on brush "start".
        @private
  */
    _brushStart(event: Record<string, unknown>): void;
    /**
        Overrides the default brush styles.
        @private
  */
    _brushStyle(): void;
    /**
        Updates domain of the timeline used in brush functions.
        @private
  */
    _updateDomain(event: Record<string, unknown>): unknown[];
    /**
        Updates limits of the brush.
        @private
  */
    _updateBrushLimit(domain: unknown[]): unknown[];
    /**
        Draws the timeline.
      @param callback Optional callback invoked after rendering completes.
  */
    render(callback?: (...args: unknown[]) => unknown): this;
    /**
          Button padding.
  */
    buttonPadding(): number;
    buttonPadding(_: number): this;
    /**
        Toggles the brushing value.
  */
    brushing(): boolean;
    brushing(_: boolean): this;
    /**
        Brush event filter.
  
  @example
  function() {
    return !event.button && event.detail < 2;
  }
  */
    brushFilter(): (event: unknown) => boolean;
    brushFilter(_: (event: unknown) => boolean): this;
    /**
        The minimum number of ticks that can be highlighted when using "ticks" buttonBehavior. Helpful when using x/y plots where you don't want the user to select less than 2 time periods.
  */
    brushMin(): () => number;
    brushMin(_: (() => number) | number): this;
    /**
        Toggles the horizontal alignment of the button timeline. Accepted values are `"start"`, `"middle"` and `"end"`.
  */
    buttonAlign(): string;
    buttonAlign(_: string): this;
    /**
        Toggles the style of the timeline. Accepted values are `"auto"`, `"buttons"` and `"ticks"`.
  */
    buttonBehavior(): string;
    buttonBehavior(_: string): this;
    /**
          Button height.
  */
    buttonHeight(): number;
    buttonHeight(_: number): this;
    /**
        Handle style.
  */
    handleConfig(): Record<string, unknown>;
    handleConfig(_: Record<string, unknown>): this;
    /**
        Handle size.
  */
    handleSize(): number;
    handleSize(_: number): this;
    /**
        Event listener for the specified brush event *typename*. Mirrors the core [d3-brush](https://github.com/d3/d3-brush#brush_on) behavior.
  */
    on(): Record<string, (...args: unknown[]) => unknown>;
    on(_: string): ((...args: unknown[]) => unknown) | undefined;
    on(_: string, f: (...args: unknown[]) => unknown): this;
    on(_: Record<string, (...args: unknown[]) => unknown>): this;
    /**
        Determines the visibility of the play button to the left the of timeline, which will cycle through the available periods at a rate defined by the playButtonInterval method.
  */
    playButton(): boolean;
    playButton(_: boolean): this;
    /**
        The config Object for the Rect class used to create the playButton.
  */
    playButtonConfig(): Record<string, unknown>;
    playButtonConfig(_: Record<string, unknown>): this;
    /**
        The value, in milliseconds, to use when cycling through the available time periods when the user clicks the playButton.
  */
    playButtonInterval(): number;
    playButtonInterval(_: number): this;
    /**
        Selection style.
  */
    selectionConfig(): Record<string, unknown>;
    selectionConfig(_: Record<string, unknown>): this;
    /**
        Selection. Defaults to the most recent year in the timeline.
  */
    selection(): unknown;
    selection(_: unknown): this;
    /**
        Toggles the snapping value.
  */
    snapping(): boolean;
    snapping(_: boolean): this;
}
