import type { components } from '../generated/api.js';
import type { WorkspaceId } from '../core/branded-types.js';
import { WorkspaceScopedResource } from './base.js';
import type { ListParams } from '../core/utils.js';
/**
 * Manage Amigo Platform workspaces.
 * Workspaces are the top-level tenancy boundary for all resources.
 *
 * Note: ``list`` operates at account level (``/v1/workspaces``).
 * Creation lives at ``/v1/me/workspaces`` — see ``MeResource``
 * (``client.me.createWorkspace``). The legacy
 * ``POST /v1/workspaces/self-service`` was removed in platform-api
 * PR #2472; ``/v1/workspaces/<x>`` paths now exclusively operate on
 * a specific workspace, so URL-parsing consumers can never confuse
 * an account-level operation with a workspace-scoped one.
 * Get/update/archive/provision operate on a specific workspace.
 */
export declare class WorkspacesResource extends WorkspaceScopedResource {
    /** List workspaces accessible to the current API key */
    list(params?: ListParams): Promise<{
        continuation_token?: number | null | undefined;
        has_more: boolean;
        items: {
            backend_org_id: string | null;
            connector_type: string | null;
            created_at: string;
            environment: string;
            id: string;
            name: string;
            provisioned_at: string | null;
            region: string;
            slug: string;
            updated_at: string;
        }[];
        total?: number | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    listAutoPaging(params?: ListParams): AsyncGenerator<{
        backend_org_id: string | null;
        connector_type: string | null;
        created_at: string;
        environment: string;
        id: string;
        name: string;
        provisioned_at: string | null;
        region: string;
        slug: string;
        updated_at: string;
    }, any, any>;
    /** Get a single workspace by ID */
    get(id?: WorkspaceId | string): Promise<{
        backend_org_id: string | null;
        connector_type: string | null;
        created_at: string;
        environment: string;
        id: string;
        name: string;
        provisioned_at: string | null;
        region: string;
        slug: string;
        updated_at: string;
    } & import("../index.js").ResponseMetadata>;
    /** Update workspace metadata */
    update(body: components['schemas']['UpdateWorkspaceRequest'], id?: WorkspaceId | string): Promise<{
        backend_org_id: string | null;
        connector_type: string | null;
        created_at: string;
        environment: string;
        id: string;
        name: string;
        provisioned_at: string | null;
        region: string;
        slug: string;
        updated_at: string;
    } & import("../index.js").ResponseMetadata>;
    /** Archive (soft-delete) a workspace */
    archive(body: components['schemas']['ArchiveWorkspaceRequest'], id?: WorkspaceId | string): Promise<{
        backend_org_id: string | null;
        connector_type: string | null;
        created_at: string;
        environment: string;
        id: string;
        name: string;
        provisioned_at: string | null;
        region: string;
        slug: string;
        updated_at: string;
    } & import("../index.js").ResponseMetadata>;
    /** Provision a workspace (seed integrations, mark as provisioned) */
    provision(id?: WorkspaceId | string): Promise<{
        workspace: {
            backend_org_id: string | null;
            connector_type: string | null;
            created_at: string;
            environment: string;
            id: string;
            name: string;
            provisioned_at: string | null;
            region: string;
            slug: string;
            updated_at: string;
        };
    } & import("../index.js").ResponseMetadata>;
    /** Pre-check environment conversion warnings */
    checkEnvironment(target?: 'production' | 'staging', id?: WorkspaceId | string): Promise<{
        current: string;
        target: string;
        warnings: string[];
    } & import("../index.js").ResponseMetadata>;
    /** Convert workspace between staging and production */
    convertEnvironment(body: components['schemas']['ConvertEnvironmentRequest'], id?: WorkspaceId | string): Promise<{
        backend_org_id: string | null;
        connector_type: string | null;
        created_at: string;
        environment: string;
        id: string;
        name: string;
        provisioned_at: string | null;
        region: string;
        slug: string;
        updated_at: string;
    } & import("../index.js").ResponseMetadata>;
    /**
     * Workspace-allowlisted phone numbers that can place test calls into voice
     * agents. The list is read-mostly; writes overwrite the entire allowlist.
     *
     * Always operates on the bound workspace. Use `client.withOptions(...)` or
     * construct a second `AmigoClient` if you need to act on a different
     * workspace.
     */
    readonly testCallerNumbers: {
        /** Get the workspace's test caller allowlist */
        get: () => Promise<{
            numbers: string[];
        } & import("../index.js").ResponseMetadata>;
        /**
         * Replace the workspace's test caller allowlist.
         *
         * **Replace-all semantics:** the request body fully replaces the existing
         * allowlist; numbers omitted from `body` are removed. Read first, mutate,
         * then write to add/remove individual entries safely.
         */
        update: (body: components["schemas"]["TestCallerNumbersRequest"]) => Promise<{
            numbers: string[];
        } & import("../index.js").ResponseMetadata>;
    };
}
//# sourceMappingURL=workspaces.d.ts.map