Interface MatchingProcessState

Manga matching process state synchronized across the application. Tracks progress, timing estimates, and pause state during manga matching operations.

interface MatchingProcessState {
/** Whether the matching process is currently running. @source */
isRunning: boolean;

/** Progress tracking information. @source */
progress: {
/** Current index in the matching process. @source */
current: number;
/** Total number of manga to process. @source */
total: number;
/** Title of the manga currently being matched. @source */
currentTitle: string;
};

/** User-facing status message for the matching progress. @source */
statusMessage: string;

/** Detailed message providing additional context or error information. @source */
detailMessage: string | null;

/** Time estimation data for remaining work. @source */
timeEstimate?: {
/** Timestamp when matching started (milliseconds). @source */
startTime: number;
/** Average time spent per manga in milliseconds. @source */
averageTimePerManga: number;
/** Estimated remaining time in seconds. @source */
estimatedRemainingSeconds: number;
};

/** Whether the user manually paused the matching process. @source */
isManuallyPaused?: boolean;

/** Whether the pause state is currently transitioning. @source */
isPauseTransitioning?: boolean;

/** Whether the matching process was interrupted by a rate limit. @source */
wasRateLimitPaused?: boolean;

/** Timestamp of the last state update (milliseconds). @source */
lastUpdated: number;
}
interface MatchingProcessState {
    isRunning: boolean;
    progress: { current: number; total: number; currentTitle: string };
    statusMessage: string;
    detailMessage: null | string;
    timeEstimate?: {
        startTime: number;
        averageTimePerManga: number;
        estimatedRemainingSeconds: number;
    };
    isManuallyPaused?: boolean;
    isPauseTransitioning?: boolean;
    wasRateLimitPaused?: boolean;
    lastUpdated: number;
}

Properties

isRunning: boolean

Whether the matching process is currently running.

  isRunning: boolean;
progress: { current: number; total: number; currentTitle: string }

Progress tracking information.

Type declaration

  • current: number

    Current index in the matching process.

        current: number;
    
  • total: number

    Total number of manga to process.

        total: number;
    
  • currentTitle: string

    Title of the manga currently being matched.

        currentTitle: string;
    
  progress: {
/** Current index in the matching process. @source */
current: number;
/** Total number of manga to process. @source */
total: number;
/** Title of the manga currently being matched. @source */
currentTitle: string;
};
statusMessage: string

User-facing status message for the matching progress.

  statusMessage: string;
detailMessage: null | string

Detailed message providing additional context or error information.

  detailMessage: string | null;
timeEstimate?: {
    startTime: number;
    averageTimePerManga: number;
    estimatedRemainingSeconds: number;
}

Time estimation data for remaining work.

Type declaration

  • startTime: number

    Timestamp when matching started (milliseconds).

        startTime: number;
    
  • averageTimePerManga: number

    Average time spent per manga in milliseconds.

        averageTimePerManga: number;
    
  • estimatedRemainingSeconds: number

    Estimated remaining time in seconds.

        estimatedRemainingSeconds: number;
    
  timeEstimate?: {
/** Timestamp when matching started (milliseconds). @source */
startTime: number;
/** Average time spent per manga in milliseconds. @source */
averageTimePerManga: number;
/** Estimated remaining time in seconds. @source */
estimatedRemainingSeconds: number;
};
isManuallyPaused?: boolean

Whether the user manually paused the matching process.

  isManuallyPaused?: boolean;
isPauseTransitioning?: boolean

Whether the pause state is currently transitioning.

  isPauseTransitioning?: boolean;
wasRateLimitPaused?: boolean

Whether the matching process was interrupted by a rate limit.

  wasRateLimitPaused?: boolean;
lastUpdated: number

Timestamp of the last state update (milliseconds).

  lastUpdated: number;