import type { InferenceAgentMachineMetadata } from "@infersec/definitions";
import { Logger } from "@infersec/logger";
import { APIClient } from "../apiClient/index.js";
import { ConduitStateManager } from "./ConduitStateManager.js";
export declare class ConduitStateReportManager {
    private apiClient;
    private collectMachineMetadata;
    private conduitStateManager;
    private downloadProgressReportIntervalMs;
    private logger;
    private stateIntervalMs;
    private conduitStateReportInFlight;
    private lastConduitStateReportAt;
    private lastMachineReportAt;
    private pendingConduitStateReport;
    private stateInterval;
    constructor({ apiClient, collectMachineMetadata, conduitStateManager, downloadProgressReportIntervalMs, logger, stateIntervalMs }: {
        apiClient: APIClient;
        collectMachineMetadata: () => Promise<InferenceAgentMachineMetadata>;
        conduitStateManager: ConduitStateManager;
        downloadProgressReportIntervalMs: number;
        logger: Logger;
        stateIntervalMs: number;
    });
    start(): Promise<void>;
    stop(): void;
    reportDownloadProgress(): void;
    reportNow(): Promise<void>;
    reportStateChange(): void;
    private sendConduitState;
    private triggerConduitStateReport;
    private scheduleConduitStateReport;
}
