type Position = 'top' | 'bottom' | 'both';
type Variant = 'primary' | 'secondary';
type Type = 'date' | 'time';
export declare class RuxRuler {
  el: HTMLRuxRulerElement;
  /**
   * @internal The Timeline's interval. Set automatically from the parent Timeline component
   */
  interval: any;
  /**
   * @internal The Timeline's start date. Set automatically from the parent Timeline component
   */
  start: string;
  /**
   * @internal The Timeline's end date. Set automatically from the parent Timeline component
   */
  end: string;
  /**
   * @internal - The Ruler's time zone. Set automatically from the parent Timeline component.
   */
  timezone: string;
  /**
   * @internal - The position of the ruler, either top bottom or both. This denotes if the new-day span is rendered
   * on top or bottom within the ruler.
   */
  rulerPosition: 'top' | 'bottom' | 'both';
  /**
   * @internal Display a secondary ruler which shows one level up from the current interval. IE: Days for Hours, Months for Days, etc. Set by the parent Timeline component.
   */
  showSecondaryRuler?: boolean | undefined;
  /**
   * Display the day (MM/DD) at 00:00. Only works when Timeline interval is set to 'hour' or 'minutes'.
   * @deprecated This property is deprecated and will be removed in the next major release. Please use the `show-secondary-ruler` property on the rux-timeline component instead.
   */
  showStartOfDay?: boolean | undefined;
  /**
   * @internal - determines if the ruler is part of a top and bottom pair of rulers. If so,
   * the styling needs to be slightly different.
   */
  isSecondary: boolean;
  /**
   * @internal used to hide j-day in secondary ruler
   */
  hideJDay: boolean;
  positionMap: Record<Type, Record<Variant, Record<Position, string>>>;
  get dateRange(): (string | Date)[][];
  getPosition(type: Type, variant: Variant, position: Position): string;
  getColumn(index: number): string;
  getWeekColumn(index: number): string;
  getMonthColumn(index: number): string;
  getYearColumn(index: number): string;
  formatDate(input: string): string;
  getPartial(): any;
  timePatterns: {
    hour: RegExp;
    day: RegExp;
    month: RegExp;
    year: RegExp;
  };
  timePattern: RegExp;
  secondaryRuler(time: string, newDay: string, index: number): any;
  /**
   * Returns boolean value when comparing hour minute day month against pattern
   */
  shouldShow(time: string): boolean;
  /**
   * month is a special case because there is no obvious
   * time pattern to tell when a new one happens, it has to
   * rely on the dates around it
   */
  shouldShowMonth(index: number): boolean;
  componentDidLoad(): void;
  private firstFullIncrement;
  render(): any;
}
export {};
