import { ClientSession } from "#client/session.js";
import type { AgentInfoResult, ClientOptions, HealthResult, SessionState } from "#client/types.js";
/**
 * HTTP client for talking to a deployed Eve agent.
 *
 * A single client is bound to one host and auth configuration. It can create
 * many concurrent {@link ClientSession | sessions}, each tracking their own
 * conversation state independently.
 */
export declare class Client {
    #private;
    constructor(options: ClientOptions);
    /**
     * Checks the health of the Eve agent server.
     *
     * @throws {ClientError} If the server returns a non-successful status.
     */
    health(): Promise<HealthResult>;
    /**
     * Fetches the agent inspection payload from `GET /eve/v1/info`.
     *
     * The dev TUI uses it to render its startup header. Remote deployments
     * require whatever auth the info route accepts, which defaults to Vercel
     * OIDC outside local development.
     *
     * @throws {ClientError} If the server returns a non-successful status.
     */
    info(): Promise<AgentInfoResult>;
    /**
     * Performs an authenticated fetch against a path on this Eve target.
     *
     * This is the raw escape hatch for framework-owned routes (for example
     * channel ingress or dev-only schedule dispatch) while preserving the same
     * auth/header cascade used by {@link health}, {@link info}, and sessions.
     */
    fetch(path: string, init?: RequestInit): Promise<Response>;
    /**
     * Creates a {@link ClientSession} handle for one conversation.
     *
     * - **No arguments**: starts a fresh conversation. The first
     *   `session.send()` call creates the run on the server.
     * - **{@link SessionState}**: resumes a previously serialized session.
     * - **string**: shorthand for resuming with a continuation token alone.
     */
    session(state?: SessionState | string): ClientSession;
}
