/**
 * Live OAP status carried by `GET /api/oap/info`. The UI surfaces this in
 * the topbar (version + UTC offset + reachable dot) and uses the
 * `timezone` + `currentTimestamp` to align time-range queries with the
 * OAP server clock — display stays in the browser's local TZ; the
 * outgoing query string is converted into the OAP's TZ for the wire.
 */
export interface OapInfo {
    reachable: boolean;
    queryUrl: string;
    /** OAP build version. */
    version?: string;
    /** Raw OAP timezone string in `±HHmm` form (e.g. `+0000`, `+0800`, `-0530`).
     *  Use `parseOapTimezoneMinutes` to convert to signed minutes-from-UTC. */
    timezone?: string;
    /** OAP-clock "now" in ms epoch when the BFF made the call. */
    currentTimestamp?: number;
    /** Health score: 0 = OK, >0 = degraded, <0 = not started. */
    healthScore?: number;
    healthDetails?: string;
    /** Per-feature schema capabilities probed via GraphQL introspection.
     *  Absent when `reachable === false`. Each field is `true` iff the
     *  corresponding `Query.<name>` field exists on the connected OAP.
     *  Routes / pages branch on this to choose between legacy + new
     *  query shapes (e.g. `getAlarm` vs `queryAlarms`). */
    capabilities?: OapCapabilities;
    error?: string;
    /** OAP's Zipkin v2 REST base URL (`oap.zipkinUrl`). Only the Zipkin /
     *  OTLP trace menu reads from it — an unreachable Zipkin endpoint does
     *  NOT degrade any other page, so the cluster-status pane scopes it
     *  to the trace component explicitly. */
    zipkinUrl?: string;
    /** Whether `GET {zipkinUrl}/api/v2/services` answered 2xx. Probed in
     *  parallel with the GraphQL info call and independent of `reachable`
     *  (query port can be up while Zipkin is off, and vice versa). */
    zipkinReachable?: boolean;
    zipkinError?: string;
}
export interface OapCapabilities {
    /** `Query.queryAlarms(condition: AlarmQueryCondition!)` — introduced
     *  alongside the deprecation of `getAlarm`. Enables Entity / layer /
     *  ruleName filters; absence means clients fall back to the
     *  scope+keyword+tags-only `getAlarm`. */
    queryAlarms: boolean;
}
/**
 * Convert OAP's `±HHmm` timezone string to signed minutes-from-UTC.
 * Returns `undefined` for malformed input.
 */
export declare function parseOapTimezoneMinutes(tz: string | undefined): number | undefined;
//# sourceMappingURL=oap-info.d.ts.map