import type { HTTPRPCOptions } from '../index.ts';
/**
 * Options for `ipfs.provide.stat`.
 */
export interface ProvideStatOptions extends HTTPRPCOptions {
    /**
     * Return all statistics (recommended).
     */
    all?: boolean;
    /**
     * Return LAN-specific statistics.
     */
    lan?: boolean;
}
/**
 * Response returned by the Kubo RPC endpoint:
 * /api/v0/provide/stat
 *
 * Depending on the provider system in use, either `Sweep`
 * or `Legacy` statistics will be populated.
 */
export interface ProvideStats {
    /**
     * Stats for the sweep provider (default in modern Kubo).
     */
    Sweep?: SweepProvideStats;
    /**
     * Stats for the legacy provider (deprecated).
     * Present only when legacy provider is enabled.
     */
    Legacy?: LegacyProvideStats | null;
    /**
     * Whether the node is using Full Routing Table (FullRT) DHT.
     */
    FullRT?: boolean;
}
/**
 * Sweep provider stats (modern provider system).
 */
export interface SweepProvideStats {
    closed: boolean;
    connectivity: ProvideConnectivity;
    queues: ProvideQueues;
    schedule: ProvideSchedule;
    workers: ProvideWorkers;
    timing: ProvideTiming;
    operations: ProvideOperations;
    network: ProvideNetwork;
}
/**
 * Legacy provider stats (older provider system).
 */
export interface LegacyProvideStats {
    total_reprovides: number;
    avg_reprovide_duration: string;
    last_reprovide_duration: string;
    last_run?: string;
    reprovide_interval?: string;
}
/**
 * Connectivity status of the provider to the DHT.
 */
export interface ProvideConnectivity {
    status: string;
    since: string;
}
/**
 * Pending provide and reprovide queue sizes.
 */
export interface ProvideQueues {
    pending_key_provides: number;
    pending_region_provides: number;
    pending_region_reprovides: number;
}
/**
 * Scheduling information for reprovides.
 */
export interface ProvideSchedule {
    keys: number;
    regions: number;
    avg_prefix_length: number;
    next_reprovide_at: string;
    next_reprovide_prefix: string;
}
/**
 * Worker pool state for provider operations.
 */
export interface ProvideWorkers {
    max: number;
    active: number;
    active_periodic: number;
    active_burst: number;
    dedicated_periodic: number;
    dedicated_burst: number;
    queued_periodic: number;
    queued_burst: number;
    max_provide_conns_per_worker: number;
}
/**
 * Timing and lifecycle information for the provider.
 */
export interface ProvideTiming {
    uptime: number;
    reprovides_interval: number;
    cycle_start: string;
    current_time_offset: number;
    max_reprovide_delay: number;
}
/**
 * Ongoing and historical provide operations.
 */
export interface ProvideOperations {
    ongoing: {
        key_provides: number;
        region_provides: number;
        key_reprovides: number;
        region_reprovides: number;
    };
    past: {
        keys_provided: number;
        records_provided: number;
        keys_failed: number;
        keys_provided_per_minute?: number;
        keys_reprovided_per_minute?: number;
        reprovide_duration?: number;
        avg_keys_per_reprovide?: number;
        regions_reprovided_last_cycle?: number;
    };
}
/**
 * DHT and network-related provider metrics.
 */
export interface ProvideNetwork {
    peers: number;
    reachable: number;
    complete_keyspace_coverage: boolean;
    avg_region_size: number;
    avg_holders: number;
    replication_factor: number;
}
//# sourceMappingURL=types.d.ts.map