/**
 * Detect the coding-agent client this process runs under — the default
 * display name `up` sets on a principal that has none (principal-display-name
 * spec). Returns null when nothing specific is known: a guess is never
 * persisted as a name. `RUN402_AGENT_NAME` (read by `up` before detection)
 * is the way any runtime names itself with no per-command flag;
 * `RUN402_CLIENT` declares the client for detection purposes when it has no
 * marker of its own (checked first, before every marker).
 */
export type DetectedClientName = "claude-code" | "codex" | "cursor" | "grok";
/** Env var that names the client outright when it is not auto-detected. */
export declare const CLIENT_OVERRIDE_ENV = "RUN402_CLIENT";
/**
 * The env markers each known client is detected from, in detection order
 * (first client whose marker is truthy wins). Exported so tests and docs can
 * enumerate the table instead of copying it.
 */
export declare const KNOWN_CLIENT_MARKERS: ReadonlyArray<{
    readonly client: DetectedClientName;
    readonly markers: ReadonlyArray<string>;
}>;
/** Every env var detection reads, `RUN402_CLIENT` first — for test isolation. */
export declare const CLIENT_DETECTION_ENV_VARS: ReadonlyArray<string>;
export declare function detectClientName(env?: NodeJS.ProcessEnv): DetectedClientName | null;
/** The name an agent runtime declares for itself, if any (`RUN402_AGENT_NAME`, trimmed). */
export declare function declaredAgentName(env?: NodeJS.ProcessEnv): string | null;
//# sourceMappingURL=client-detect.d.ts.map