import createClient from 'openapi-fetch'; import { paths, SchemaCreateBackfillJob, SchemaCreateJob, SchemaDatasetCreate, SchemaDatasetRead, SchemaTableConfigRead, SchemaDatasetUpdate, SchemaItemsCollectionReadDatadog, SchemaItemsCollectionReadDataWarehouse, SchemaItemsCollectionReadJob, SchemaItemsCollectionReadNewRelic, SchemaItemsCollectionReadOtlp, SchemaItemsCollectionReadS3DataWarehouse, SchemaItemsCollectionReadSplunk, SchemaItemsCollectionReadSumo, SchemaReadDatadog, SchemaReadDataWarehouse, SchemaReadJob, SchemaReadNewRelic, SchemaParseQueryResponse, SchemaReadOtlp, SchemaReadS3DataWarehouse, SchemaReadSplunk, SchemaReadSumo, SchemaTemplate, SchemaUpdateJob } from '../openapi/openApiTypes.js'; import type { InvestigationSummaryStatus, SchemaAgentDetail, SchemaAgentRosterEntry, SchemaAgentSummary, SchemaInvestigationsList, SchemaInvestigationTranscript, SchemaTranscriptTurnsList, SchemaMemoryDetail, SchemaMemorySearchRequest, SchemaMemorySearchResponse } from '../openapi/openApiTypes.js'; import { ApiClientConfig, IntegrationReadType, IntegrationTypeAndList, JobExecution, JobProcessing, JobState } from '../types.js'; /** API error with response status and Retry-After metadata for retry logic. */ export declare class ApiError extends Error { readonly status?: number; readonly retryAfterMs?: number; constructor(message: string, status?: number, retryAfterMs?: number); } /** * Main API client for the Grepr CLI using openapi-fetch. * This follows the same patterns as the frontend API client. */ export declare class GreprApiClient { private config; private client; private auth; constructor(config: ApiClientConfig); /** * Get the underlying openapi-fetch client for direct access. * This allows for full flexibility while maintaining type safety. */ getClient(): ReturnType>; listAgentRoster(): Promise; listAgents(): Promise; getAgent(id: string): Promise; listInvestigations(id: string, query: { page?: number; pageSize?: number; statuses?: InvestigationSummaryStatus[]; }): Promise; /** Metadata only; transcript messages are read separately with getInvestigationTurns. */ getInvestigation(investigationId: string, signal?: AbortSignal): Promise; getInvestigationTurns(investigationId: string, afterSeq: number, pageSize: number, signal?: AbortSignal): Promise; searchInvestigationMemory(body: SchemaMemorySearchRequest): Promise; getInvestigationMemory(memoryId: string): Promise; listJobs(params?: { since?: string; execution?: JobExecution; processing?: JobProcessing; latest?: boolean; state?: JobState[]; name?: string[]; id?: string[]; }): Promise; getJob(id: string, version?: number, resolved?: boolean): Promise; /** Fetches the exact template version referenced by a template operation. */ getTemplate(id: string, version: number): Promise; createAsyncJob(job: SchemaCreateJob): Promise; createBackfillJob(request: SchemaCreateBackfillJob): Promise; updateJob(id: string, job: SchemaUpdateJob, rollbackEnabled?: boolean): Promise; deleteJob(id: string): Promise; listDatasets(): Promise; getDataset(id: string): Promise; getDatasetTableConfig(id: string, tableKey: string): Promise; createDataset(dataset: SchemaDatasetCreate): Promise; updateDataset(id: string, dataset: SchemaDatasetUpdate): Promise; deleteDataset(id: string): Promise; listDatadogIntegrations(): Promise; getDatadogIntegration(id: string): Promise; listDataWarehouseIntegrations(): Promise; getDataWarehouseIntegration(id: string): Promise; listS3DataWarehouseIntegrations(): Promise; getS3DataWarehouseIntegration(id: string): Promise; listNewRelicIntegrations(): Promise; getNewRelicIntegration(id: string): Promise; listOtlpIntegrations(): Promise; getOtlpIntegration(id: string): Promise; listSplunkIntegrations(): Promise; getSplunkIntegration(id: string): Promise; listSumoIntegrations(): Promise; getSumoIntegration(id: string): Promise; getAllIntegrations(): Promise[]>; getIntegrationById(id: string): Promise; sendHeartbeat(heartbeatToken: string): Promise; lookupDataset(nameOrId: string): Promise; validateSql(sql: string): Promise; /** * POST a job to `/v1/jobs/sync` and stream the NDJSON response. * * @param signal optional AbortSignal; aborting it (e.g. a draft's * max-duration cap) ends the returned stream cleanly rather than erroring, * so partial output already received is preserved. */ submitSyncJob(jobDefinition: SchemaCreateJob, signal?: AbortSignal): Promise; } //# sourceMappingURL=grepr-api-client.d.ts.map