import * as Schema from "effect/Schema";
import { BadRequest, Forbidden, NotFound } from "../../errors.ts";
export declare const SdkDoctorReportRetrieveInput: Schema.Struct<{
    readonly project_id: Schema.String;
    readonly force_refresh: Schema.optional<Schema.Boolean>;
}>;
export type SdkDoctorReportRetrieveInput = typeof SdkDoctorReportRetrieveInput.Type;
export declare const SdkDoctorReportRetrieveOutput: Schema.Struct<{
    readonly overall_health: Schema.optional<Schema.Literals<readonly ["healthy", "needs_attention"]>>;
    readonly health: Schema.optional<Schema.Literals<readonly ["success", "warning", "danger"]>>;
    readonly needs_updating_count: Schema.optional<Schema.Number>;
    readonly team_sdk_count: Schema.optional<Schema.Number>;
    readonly sdks: Schema.optional<Schema.$Array<Schema.Struct<{
        readonly lib: Schema.optional<Schema.String>;
        readonly readable_name: Schema.optional<Schema.String>;
        readonly latest_version: Schema.optional<Schema.String>;
        readonly needs_updating: Schema.optional<Schema.Boolean>;
        readonly is_outdated: Schema.optional<Schema.Boolean>;
        readonly is_old: Schema.optional<Schema.Boolean>;
        readonly severity: Schema.optional<Schema.Literals<readonly ["none", "warning", "danger"]>>;
        readonly reason: Schema.optional<Schema.String>;
        readonly banners: Schema.optional<Schema.$Array<Schema.String>>;
        readonly releases: Schema.optional<Schema.$Array<Schema.Struct<{
            readonly version: Schema.optional<Schema.String>;
            readonly count: Schema.optional<Schema.Number>;
            readonly max_timestamp: Schema.optional<Schema.String>;
            readonly release_date: Schema.optional<Schema.NullOr<Schema.String>>;
            readonly days_since_release: Schema.optional<Schema.NullOr<Schema.Number>>;
            readonly released_ago: Schema.optional<Schema.NullOr<Schema.String>>;
            readonly is_outdated: Schema.optional<Schema.Boolean>;
            readonly is_old: Schema.optional<Schema.Boolean>;
            readonly needs_updating: Schema.optional<Schema.Boolean>;
            readonly is_current_or_newer: Schema.optional<Schema.Boolean>;
            readonly status_reason: Schema.optional<Schema.String>;
            readonly sql_query: Schema.optional<Schema.String>;
            readonly activity_page_url: Schema.optional<Schema.String>;
        }>>>;
        readonly outdated_traffic_alerts: Schema.optional<Schema.$Array<Schema.Struct<{
            readonly version: Schema.optional<Schema.String>;
            readonly threshold_percent: Schema.optional<Schema.Number>;
        }>>>;
    }>>>;
}>;
export type SdkDoctorReportRetrieveOutput = typeof SdkDoctorReportRetrieveOutput.Type;
/**
 * Get SDK health report for a project
 *
 * Returns a pre-digested health assessment of the PostHog SDKs the project is using. Covers which SDKs are current vs outdated (smart-semver rules with grace periods and traffic-percentage thresholds), per-version breakdown, and a human-readable reason for each assessment. Use this to diagnose SDK version issues, surface upgrade recommendations, or check overall SDK health.
 *
 * @param force_refresh - When true, bypasses the Redis cache and re-queries ClickHouse for SDK usage. Use sparingly — data is refreshed every 12 hours by a background job.
 * @param project_id - Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
 */
export declare const sdkDoctorReportRetrieve: import("@distilled.cloud/core/client").OperationMethod<{
    readonly project_id: string;
    readonly force_refresh?: boolean | undefined;
}, {
    readonly overall_health?: "healthy" | "needs_attention" | undefined;
    readonly health?: "danger" | "success" | "warning" | undefined;
    readonly needs_updating_count?: number | undefined;
    readonly team_sdk_count?: number | undefined;
    readonly sdks?: readonly {
        readonly lib?: string | undefined;
        readonly readable_name?: string | undefined;
        readonly latest_version?: string | undefined;
        readonly needs_updating?: boolean | undefined;
        readonly is_outdated?: boolean | undefined;
        readonly is_old?: boolean | undefined;
        readonly severity?: "danger" | "none" | "warning" | undefined;
        readonly reason?: string | undefined;
        readonly banners?: readonly string[] | undefined;
        readonly releases?: readonly {
            readonly version?: string | undefined;
            readonly count?: number | undefined;
            readonly max_timestamp?: string | undefined;
            readonly release_date?: string | null | undefined;
            readonly days_since_release?: number | null | undefined;
            readonly released_ago?: string | null | undefined;
            readonly is_outdated?: boolean | undefined;
            readonly is_old?: boolean | undefined;
            readonly needs_updating?: boolean | undefined;
            readonly is_current_or_newer?: boolean | undefined;
            readonly status_reason?: string | undefined;
            readonly sql_query?: string | undefined;
            readonly activity_page_url?: string | undefined;
        }[] | undefined;
        readonly outdated_traffic_alerts?: readonly {
            readonly version?: string | undefined;
            readonly threshold_percent?: number | undefined;
        }[] | undefined;
    }[] | undefined;
}, BadRequest | Forbidden | NotFound, import("~/credentials.ts").Credentials>;
//# sourceMappingURL=sdkDoctorReportRetrieve.d.ts.map