import type { CommsResponse } from '../../../sdk/api/chats/serverTypes';
import { ApiHealthResponseData, HealthCheckComms, HealthCheckResponseData, HealthCheckStatus, HealthCheckStatusReason, HealthCheckThresholds } from './healthCheckTypes';
export declare const isFullFlaskResponse: (data: ApiHealthResponseData) => data is Partial<{
    latest_chain_block: number;
    latest_indexed_block: number;
    latest_chain_slot_plays: number;
    latest_indexed_slot_plays: number;
    signature: string;
    timestamp: string;
    version: {
        service: string;
        version: string;
    };
    data: unknown;
}>;
export declare const isCommsResponse: (data: ApiHealthResponseData) => data is CommsResponse;
export declare const parseApiHealthStatusReason: ({ data, healthCheckThresholds: { minVersion, maxBlockDiff, maxSlotDiffPlays } }: {
    data: ApiHealthResponseData;
    healthCheckThresholds: HealthCheckThresholds;
}) => {
    health: HealthCheckStatus;
    reason: string;
} | {
    health: HealthCheckStatus;
    reason?: undefined;
};
export declare const parseHealthStatusReason: ({ data, comms, healthCheckThresholds: { minVersion, maxBlockDiff, maxSlotDiffPlays } }: {
    data: HealthCheckResponseData | null;
    comms: HealthCheckComms | null;
    healthCheckThresholds: HealthCheckThresholds;
}) => HealthCheckStatusReason;
export declare const getDiscoveryNodeHealthCheck: ({ endpoint, healthCheckThresholds, fetchOptions, timeoutMs }: {
    endpoint: string;
    healthCheckThresholds: HealthCheckThresholds;
    fetchOptions?: RequestInit | undefined;
    timeoutMs?: number | undefined;
}) => Promise<{
    data: {
        auto_upgrade_enabled?: boolean | undefined;
        block_difference?: number | undefined;
        challenge_last_event_age_sec?: number | undefined;
        chain_health?: {
            status?: string | undefined;
        } | null | undefined;
        database_connections?: number | undefined;
        database_is_localhost?: boolean | undefined;
        database_size?: number | undefined;
        db?: {
            blockhash?: string | undefined;
            number?: number | undefined;
        } | undefined;
        filesystem_size?: number | undefined;
        filesystem_used?: number | undefined;
        final_poa_block?: any;
        git?: string | undefined;
        index_eth_age_sec?: number | undefined;
        infra_setup?: string | undefined;
        last_scanned_block_for_balance_refresh?: number | undefined;
        last_track_unavailability_job_end_time?: string | undefined;
        last_track_unavailability_job_start_time?: string | undefined;
        latest_block_num?: number | undefined;
        latest_indexed_block_num?: number | undefined;
        maximum_healthy_block_difference?: number | undefined;
        meets_min_requirements?: boolean | undefined;
        network?: {
            content_nodes?: import("..").StorageNode[] | undefined;
            discovery_nodes?: string[] | undefined;
            discovery_nodes_with_owner?: import("./types").DiscoveryNode[] | undefined;
        } | undefined;
        num_users_in_immediate_balance_refresh_queue?: number | undefined;
        num_users_in_lazy_balance_refresh_queue?: number | undefined;
        number_of_cpus?: number | undefined;
        openresty_public_key?: string | undefined;
        plays?: {
            is_unhealthy?: boolean | undefined;
            oldest_unarchived_play_created_at?: string | undefined;
            time_diff_general?: number | undefined;
            tx_info?: {
                slot_diff?: number | undefined;
                time_diff?: number | undefined;
                tx_info?: {
                    chain_tx?: {
                        signature?: string | undefined;
                        slot?: number | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                    db_tx?: {
                        signature?: string | undefined;
                        slot?: number | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        reactions?: {
            indexing_delta?: number | undefined;
            is_unhealthy?: boolean | undefined;
            reaction_delta?: number | undefined;
        } | undefined;
        received_bytes_per_sec?: number | undefined;
        redis_total_memory?: number | undefined;
        rewards_manager?: {
            is_unhealthy?: number | undefined;
            time_diff_general?: number | undefined;
            tx_info?: {
                slot_diff?: number | undefined;
                time_diff?: number | undefined;
                tx_info?: {
                    chain_tx?: {
                        signature?: string | undefined;
                        slot?: number | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                    db_tx?: {
                        signature?: string | undefined;
                        slot?: number | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        service?: string | undefined;
        spl_audio_info?: {
            is_unhealthy?: boolean | undefined;
            time_diff_general?: number | undefined;
            tx_info?: {
                slot_diff?: number | undefined;
                time_diff?: number | undefined;
                tx_info?: {
                    chain_tx?: {
                        signature?: string | undefined;
                        slot?: number | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                    db_tx?: {
                        signature?: string | undefined;
                        slot?: number | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        total_memory?: number | undefined;
        transferred_bytes_per_sec?: number | undefined;
        trending_playlists_age_sec?: number | undefined;
        trending_tracks_age_sec?: number | undefined;
        url?: string | undefined;
        used_memory?: number | undefined;
        user_balances_age_sec?: number | undefined;
        user_bank?: {
            is_unhealthy?: boolean | undefined;
            time_diff_general?: number | undefined;
            tx_info?: {
                slot_diff?: number | undefined;
                time_diff?: number | undefined;
                tx_info?: {
                    chain_tx?: {
                        signature?: string | undefined;
                        slot?: number | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                    db_tx?: {
                        signature?: number | undefined;
                        slot?: string | undefined;
                        timestamp?: number | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        version?: string | undefined;
        web?: {
            blockhash?: string | undefined;
            blocknumber?: number | undefined;
        } | undefined;
    };
    health: HealthCheckStatus;
    reason?: string | undefined;
} | {
    health: HealthCheckStatus;
    reason: string;
    data: null;
}>;
