import type { FetchLike } from './runtime-rule.js';
export interface StatusClientOptions {
    /** OAP query host URL (serves GraphQL + `/status/*`), default port
     *  12800. No trailing slash. Named `queryUrl` because the same OAP
     *  HTTP server hosts both the query (GraphQL) and status surfaces;
     *  StatusClient just hits the `/status/*` subset. */
    queryUrl: string;
    fetch?: FetchLike;
    headers?: Record<string, string>;
    /** Per-call timeout in ms. 0 disables. Default 0. */
    timeoutMs?: number;
}
/** Cluster node with both wire spellings of the self-flag normalised
 *  into a single `self: boolean` field. */
export interface NormalisedClusterNode {
    host: string;
    port: number;
    self: boolean;
}
/**
 * Read-only client for the upstream `/status/*` plugin endpoints v1
 * needs. Today this is a single endpoint — cluster member discovery
 * for the BFF's per-rule × per-node fan-out.
 */
export declare class StatusClient {
    private readonly fetchImpl;
    private readonly base;
    private readonly defaultHeaders;
    private readonly timeoutMs;
    constructor(options: StatusClientOptions);
    /** `GET /status/cluster/nodes` — returns the OAP cluster member list. */
    clusterNodes(): Promise<NormalisedClusterNode[]>;
}
//# sourceMappingURL=status.d.ts.map