import type { RequestOptions } from "../base-client";
import { RequestBuilder } from "../request-builder";
/**
 * Support domain namespace — tickets, queues, SLA policies, routing, and AI configuration.
 *
 * Covers the full support lifecycle: manage tickets through assign/resolve/close/reopen/merge,
 * configure queues with AI modes, set SLA policies, define routing rules, and manage
 * canned responses and channel capture configs.
 */
export declare function createSupportNamespace(rb: RequestBuilder): {
    tickets: {
        /** Get a support ticket by ID */
        get: (id: string, options?: RequestOptions) => Promise<unknown>;
        /** List tickets for a workspace */
        listByWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create a new support ticket */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Update a support ticket */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Assign a ticket to an agent or queue */
        assign: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Resolve a ticket */
        resolve: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Close a resolved ticket */
        close: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Reopen a closed or resolved ticket */
        reopen: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Merge a ticket into another ticket */
        merge: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Delete a support ticket */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    messages: {
        /** List messages for a ticket */
        listByTicket: (ticketId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create a message on a ticket */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
    };
    attachments: {
        /** List attachments for a ticket message */
        listByMessage: (messageId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create an attachment on a ticket message */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
    };
    ratings: {
        /** Create or update a satisfaction rating for a ticket */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
    };
    tags: {
        /** List tags for a workspace */
        listByWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create a tag */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Delete a tag */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    queues: {
        /** Get a queue by ID */
        get: (id: string, options?: RequestOptions) => Promise<unknown>;
        /** List queues for an application */
        listByApplication: (applicationId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create a queue */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Update a queue */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Delete a queue */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    queueMembers: {
        /** List members of a queue */
        listByQueue: (queueId: string, options?: RequestOptions) => Promise<unknown>;
        /** List all queue members for an application */
        listByApplication: (applicationId: string, options?: RequestOptions) => Promise<unknown>;
        /** Add a member to a queue */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Update a queue member */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Remove a member from a queue */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    routingRules: {
        /** Get a routing rule by ID */
        get: (id: string, options?: RequestOptions) => Promise<unknown>;
        /** List routing rules for an application */
        listByApplication: (applicationId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create a routing rule */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Update a routing rule */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Delete a routing rule */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    slaPolicies: {
        /** Get an SLA policy by ID */
        get: (id: string, options?: RequestOptions) => Promise<unknown>;
        /** List SLA policies for an application */
        listByApplication: (applicationId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create an SLA policy */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Update an SLA policy */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Delete an SLA policy */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    aiConfig: {
        /** Get AI config for a workspace */
        getForWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create or update AI config */
        upsert: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
    };
    channelCaptureConfig: {
        /** Get channel capture config for a workspace */
        getForWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create or update channel capture config */
        upsert: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
    };
    syncConfig: {
        /** List sync configs for a workspace */
        listByWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create a sync config */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Update a sync config */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Delete a sync config */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
    cannedResponses: {
        /** List canned responses for a workspace */
        listByWorkspace: (workspaceId: string, options?: RequestOptions) => Promise<unknown>;
        /** Create a canned response */
        create: (attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Update a canned response */
        update: (id: string, attributes: Record<string, unknown>, options?: RequestOptions) => Promise<unknown>;
        /** Delete a canned response */
        delete: (id: string, options?: RequestOptions) => Promise<true>;
    };
};
//# sourceMappingURL=support.d.ts.map