import { WorkspaceScopedResource, extractData } from './base.js';
/**
 * Workspace-level settings — configure voice behavior, branding, security
 * policies, data retention, outreach rules, and more.
 *
 * Each sub-resource has `get()` and `update()`.
 */
export class SettingsResource extends WorkspaceScopedResource {
    voice = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/voice', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/voice', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    branding = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/branding', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/branding', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    outreach = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/outreach', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/outreach', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    memory = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/memory', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/memory', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    security = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/security', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/security', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    retention = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/retention', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/retention', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    behaviors = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/behaviors', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/behaviors', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    gapScanner = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/gap-scanner', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/gap-scanner', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    scribe = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/scribe', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/scribe', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    metrics = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/metrics', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/metrics', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    environments = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/environments', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/environments', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
    workflows = {
        get: async () => extractData(await this.client.GET('/v1/{workspace_id}/settings/workflows', {
            params: { path: { workspace_id: this.workspaceId } },
        })),
        update: async (body) => extractData(await this.client.PUT('/v1/{workspace_id}/settings/workflows', {
            params: { path: { workspace_id: this.workspaceId } },
            body,
        })),
    };
}
//# sourceMappingURL=settings.js.map