/** * Olumi Assistants SDK Client * * Official TypeScript client for Olumi Assistants Service */ import type { OlumiConfig, RequestOptions, DraftGraphRequest, DraftGraphResponse, SuggestOptionsRequest, SuggestOptionsResponse, ClarifyBriefRequest, ClarifyBriefResponse, CritiqueGraphRequest, CritiqueGraphResponse, ExplainDiffRequest, ExplainDiffResponse, EvidencePackRequest, EvidencePackResponse, ShareRequest, ShareResponse, ShareRevokeResponse, StatusResponse, LimitsResponse } from "./types.js"; /** * Response metadata captured from HTTP headers */ export interface ResponseMetadata { requestId?: string; rateLimit?: { limit: number; remaining: number; reset: Date; }; } /** * Enhanced API response with metadata */ export interface ApiResponse { data: T; metadata: ResponseMetadata; } export declare class OlumiClient { private readonly apiKey; private readonly baseUrl; private readonly timeout; private readonly maxRetries; private readonly retryDelay; private readonly hmacSecret?; constructor(config: OlumiConfig); /** * Draft a decision graph from a brief description */ draftGraph(request: DraftGraphRequest, options?: RequestOptions): Promise>; /** * Suggest new options for a question node */ suggestOptions(request: SuggestOptionsRequest, options?: RequestOptions): Promise>; /** * Generate clarifying questions for an ambiguous brief */ clarifyBrief(request: ClarifyBriefRequest, options?: RequestOptions): Promise>; /** * Critique a decision graph for quality issues */ critiqueGraph(request: CritiqueGraphRequest, options?: RequestOptions): Promise>; /** * Explain the differences between two graph versions */ explainDiff(request: ExplainDiffRequest, options?: RequestOptions): Promise>; /** * Generate supporting evidence for a graph */ evidencePack(request: EvidencePackRequest, options?: RequestOptions): Promise>; /** * Create a shareable link for a graph (v1.6 feature) */ createShare(request: ShareRequest, options?: RequestOptions): Promise>; /** * Revoke a share link (v1.6 feature) * @param token - The share token (from share URL, not the share_id) */ revokeShare(token: string, options?: RequestOptions): Promise>; /** * Get service status and diagnostics (v1.6 feature) */ getStatus(options?: RequestOptions): Promise>; /** * Get current quota and graph cap limits for the authenticated key (v1.7+) */ getLimits(options?: RequestOptions): Promise>; /** * Health check endpoint */ healthCheck(options?: RequestOptions): Promise>; /** * Internal request helper with retry logic and metadata extraction */ private request; /** * Extract metadata from response headers */ private extractMetadata; /** * Combine multiple AbortSignals * Uses AbortSignal.any() if available (Node 20+), otherwise manual combination with cleanup */ private combineAbortSignals; /** * Calculate exponential backoff delay */ private calculateBackoff; /** * Sleep for specified milliseconds */ private sleep; private validateDraftGraphRequest; private validateSuggestOptionsRequest; private validateClarifyBriefRequest; private validateCritiqueGraphRequest; private validateExplainDiffRequest; private validateEvidencePackRequest; private validateShareRequest; private validateGraph; } //# sourceMappingURL=client.d.ts.map