/**
 * OutcomesClient — REST client for /api/outcomes/* endpoints.
 *
 * Endpoints are defined in sprint-522:quick-4 (command-center HTTP server).
 * This client is the SDK-side contract: route authors must match these shapes.
 *
 * Auth: Bearer token injected via `getToken()` on every call.
 * Error handling: 4xx responses throw OutcomesApiError.
 * No Zod dependency — types are validated structurally at the call site.
 */
import type { CfoView, Outcome, OutcomeSummary, OutcomeType, RoiPerAgent } from "./types.js";
export declare class OutcomesApiError extends Error {
    readonly status: number;
    readonly body: string;
    constructor(status: number, body: string, message?: string);
}
export interface OutcomesListFilter {
    agentId?: string;
    type?: OutcomeType;
    /** ISO 8601 datetime — inclusive lower bound. */
    from?: string;
    /** ISO 8601 datetime — inclusive upper bound. */
    to?: string;
    limit?: number;
    cursor?: string;
}
export interface OutcomesListResponse {
    items: Outcome[];
    /** Opaque cursor for the next page. Absent when no further pages exist. */
    nextCursor?: string;
}
export interface OutcomesClient {
    /**
     * List outcomes with optional filtering and cursor-based pagination.
     * GET /api/outcomes
     */
    list(filter?: OutcomesListFilter): Promise<OutcomesListResponse>;
    /**
     * Aggregated outcome summary for a time window.
     * GET /api/outcomes/summary?from=...&to=...
     */
    summary(period: {
        from: string;
        to: string;
    }): Promise<OutcomeSummary>;
    /**
     * CFO-ready burn-rate and initiative breakdown.
     * GET /api/outcomes/cfo?from=...&to=...
     */
    cfo(period: {
        from: string;
        to: string;
    }): Promise<CfoView>;
    /**
     * Per-agent ROI breakdown for a time window.
     * GET /api/outcomes/roi?from=...&to=...
     */
    roi(period: {
        from: string;
        to: string;
    }, opts?: {
        sortBy?: "net_roi_pct" | "value_cents";
        limit?: number;
    }): Promise<RoiPerAgent[]>;
}
export interface OutcomesClientOptions {
    baseUrl: string;
    /** Called before every request to obtain a fresh Bearer token. */
    getToken: () => Promise<string>;
}
/**
 * Factory — create an OutcomesClient pointed at a Command Center instance.
 *
 * @example
 * const client = createOutcomesClient({
 *   baseUrl: process.env.COMMAND_CENTER_URL,
 *   getToken: () => auth.getAccessToken(),
 * });
 */
export declare function createOutcomesClient(opts: OutcomesClientOptions): OutcomesClient;
//# sourceMappingURL=client.d.ts.map