import { WorkspaceScopedResource, extractData } from './base.js';
/**
 * Manage workspace monitor concepts — semantic patterns the platform watches
 * across calls to surface emerging behavior. Each concept holds a name,
 * description, and detection rules; the platform indexes them and lights
 * them up against live and historical traffic.
 *
 * @beta New in this release; surface may evolve.
 */
export class MonitorConceptsResource extends WorkspaceScopedResource {
    /** Create a new monitor concept */
    async create(body) {
        return extractData(await this.client.POST('/v1/{workspace_id}/monitor-concepts', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        }));
    }
    /** List monitor concepts in the workspace */
    async list(params) {
        return extractData(await this.client.GET('/v1/{workspace_id}/monitor-concepts', {
            params: { path: { workspace_id: this.workspaceId }, query: params },
        }));
    }
    listAutoPaging(params) {
        return this.iteratePaginatedList((pageParams) => this.list(pageParams), params);
    }
    /** Get a single monitor concept */
    async get(conceptId) {
        return extractData(await this.client.GET('/v1/{workspace_id}/monitor-concepts/{concept_id}', {
            params: { path: { workspace_id: this.workspaceId, concept_id: conceptId } },
        }));
    }
    /** Update a monitor concept */
    async update(conceptId, body) {
        return extractData(await this.client.PATCH('/v1/{workspace_id}/monitor-concepts/{concept_id}', {
            params: { path: { workspace_id: this.workspaceId, concept_id: conceptId } },
            body,
        }));
    }
    /** Delete a monitor concept */
    async delete(conceptId) {
        return extractData(await this.client.DELETE('/v1/{workspace_id}/monitor-concepts/{concept_id}', {
            params: { path: { workspace_id: this.workspaceId, concept_id: conceptId } },
        }));
    }
}
//# sourceMappingURL=monitor-concepts.js.map