import { VegaProgressTrackerStepItem } from '../../../type';
export declare enum ProgressStepStatus {
  DEFAULT = "default",
  IN_PROGRESS = "inProgress",
  COMPLETE = "complete"
}
/**
 * Data Transfer Object representing an internal step in the progress tracker.
 */
export declare class InternalProgressTrackerStep {
  readonly stepKey: string;
  readonly title: string;
  readonly progressStatus: ProgressStepStatus;
  readonly isCurrent: boolean;
  readonly clickable: boolean;
  /**
   * @param {string} stepKey - The unique key for the step.
   * @param {string} title - The title of the step.
   * @param {ProgressStepStatus} progressStatus - The progress status of the step.
   * @param {boolean} isCurrent - Indicates if this step is the current step.
   * @param {boolean} clickable - Indicates if this step is clickable.
   */
  constructor(stepKey: string, title: string, progressStatus: ProgressStepStatus, isCurrent: boolean, clickable: boolean);
  /**
   * Create InternalProgressTrackerStep array from steps property
   *
   * @param {HTMLElement} host - The host element.
   * @param {string[] | VegaProgressTrackerStepItem[]} steps - An array of step keys.
   * @param {number} current - The current step index.
   * @param {string[]} completedSteps - An array of completed step keys.
   * @returns {InternalProgressTrackerStep[]} An array of InternalProgressTrackerStep instances.
   */
  static fromSteps(host: HTMLVegaProgressTrackerElement, steps: string[] | VegaProgressTrackerStepItem[], current: number, completedSteps: string[]): InternalProgressTrackerStep[];
  /**
   * Create InternalProgressTrackerStep array from host slot elements
   *
   * @param {HTMLElement} host - The host element containing the slot elements.
   * @param {number} current - The current step index.
   * @param {string[]} completedSteps - An array of completed step keys.
   * @returns {InternalProgressTrackerStep[]} An array of InternalProgressTrackerStep instances.
   */
  static fromHostSlot(host: HTMLVegaProgressTrackerElement, current: number, completedSteps: string[]): InternalProgressTrackerStep[];
  /**
   * Determines the progress status of a step based on its index, the current step, and completed steps.
   *
   * @param {string} stepKey - The unique key for the step.
   * @param {number} stepIndex - The index of the step.
   * @param {number} current - The current step index.
   * @param {string[]} completedSteps - An array of completed step keys. TODO: In the future, this will be derived from the step's own status rather than relying on an external array.
   * @returns {ProgressStepStatus} The progress status of the step.
   */
  private static getStepStatus;
  /**
   * Gets the clickable mode of the step.
   *
   * @param {HTMLElement} host - The host element.
   * @param {string | VegaProgressTrackerStepItem} step - The step element.
   * @returns { boolean } The clickable mode of the step.
   */
  private static getIsStepClickable;
  /**
   * Checks if the step is completed.
   *
   * @returns { boolean } A boolean value indicating whether the step is completed.
   */
  isCompleted(): boolean;
}
