import { CredentialType } from '@bubblelab/shared-schemas'; import { ServiceBubble } from '../../../types/service-bubble-class.js'; import type { BubbleContext } from '../../../types/bubble.js'; import { type SlabParamsInput, type SlabResult } from './slab.schema.js'; /** * SlabBubble - Integration with Slab knowledge management platform * * Provides operations for interacting with Slab: * - Search posts across the workspace * - Get specific post details * - List all organization posts * - Get posts within a topic * - List all topics * * @example * ```typescript * // Search for posts * const result = await new SlabBubble({ * operation: 'search_posts', * query: 'onboarding guide', * first: 10, * }).action(); * * // Get a specific post * const post = await new SlabBubble({ * operation: 'get_post', * post_id: 'abc123', * }).action(); * ``` */ export declare class SlabBubble extends ServiceBubble> { static readonly service = "slab"; static readonly authType: "basic"; static readonly bubbleName: "slab"; static readonly type: "service"; static readonly schema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"search_posts">; query: import("zod").ZodString; first: import("zod").ZodDefault>; after: import("zod").ZodOptional; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { query: string; operation: "search_posts"; first: number; credentials?: Partial> | undefined; after?: string | undefined; }, { query: string; operation: "search_posts"; credentials?: Partial> | undefined; after?: string | undefined; first?: number | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"get_post">; post_id: import("zod").ZodString; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { operation: "get_post"; post_id: string; credentials?: Partial> | undefined; }, { operation: "get_post"; post_id: string; credentials?: Partial> | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_posts">; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { operation: "list_posts"; credentials?: Partial> | undefined; }, { operation: "list_posts"; credentials?: Partial> | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"get_topic_posts">; topic_id: import("zod").ZodString; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { operation: "get_topic_posts"; topic_id: string; credentials?: Partial> | undefined; }, { operation: "get_topic_posts"; topic_id: string; credentials?: Partial> | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_topics">; credentials: import("zod").ZodOptional, import("zod").ZodString>>; }, "strip", import("zod").ZodTypeAny, { operation: "list_topics"; credentials?: Partial> | undefined; }, { operation: "list_topics"; credentials?: Partial> | undefined; }>]>; static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"search_posts">; success: import("zod").ZodBoolean; posts: import("zod").ZodOptional>; content: import("zod").ZodNullable>; insertedAt: import("zod").ZodNullable>; publishedAt: import("zod").ZodNullable>; owner: import("zod").ZodNullable>>; topics: import("zod").ZodNullable, "many">>>; }, "strip", import("zod").ZodTypeAny, { title: string; id: string; content?: unknown; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; insertedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; highlight?: unknown; }, { title: string; id: string; content?: unknown; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; insertedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; highlight?: unknown; }>, "many">>; has_more: import("zod").ZodOptional; end_cursor: import("zod").ZodNullable>; error: import("zod").ZodString; }, "strip", import("zod").ZodTypeAny, { error: string; success: boolean; operation: "search_posts"; has_more?: boolean | undefined; posts?: { title: string; id: string; content?: unknown; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; insertedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; highlight?: unknown; }[] | undefined; end_cursor?: string | null | undefined; }, { error: string; success: boolean; operation: "search_posts"; has_more?: boolean | undefined; posts?: { title: string; id: string; content?: unknown; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; insertedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; highlight?: unknown; }[] | undefined; end_cursor?: string | null | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"get_post">; success: import("zod").ZodBoolean; post: import("zod").ZodOptional>; insertedAt: import("zod").ZodNullable>; publishedAt: import("zod").ZodNullable>; updatedAt: import("zod").ZodNullable>; archivedAt: import("zod").ZodNullable>; owner: import("zod").ZodNullable>>; version: import("zod").ZodNullable>; topics: import("zod").ZodNullable, "many">>>; }, "strip", import("zod").ZodTypeAny, { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }, { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }>>; error: import("zod").ZodString; }, "strip", import("zod").ZodTypeAny, { error: string; success: boolean; operation: "get_post"; post?: { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; } | undefined; }, { error: string; success: boolean; operation: "get_post"; post?: { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; } | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_posts">; success: import("zod").ZodBoolean; posts: import("zod").ZodOptional>; insertedAt: import("zod").ZodNullable>; publishedAt: import("zod").ZodNullable>; updatedAt: import("zod").ZodNullable>; archivedAt: import("zod").ZodNullable>; owner: import("zod").ZodNullable>>; version: import("zod").ZodNullable>; topics: import("zod").ZodNullable, "many">>>; }, "strip", import("zod").ZodTypeAny, { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }, { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }>, "many">>; error: import("zod").ZodString; }, "strip", import("zod").ZodTypeAny, { error: string; success: boolean; operation: "list_posts"; posts?: { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }[] | undefined; }, { error: string; success: boolean; operation: "list_posts"; posts?: { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }[] | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"get_topic_posts">; success: import("zod").ZodBoolean; posts: import("zod").ZodOptional>; insertedAt: import("zod").ZodNullable>; publishedAt: import("zod").ZodNullable>; updatedAt: import("zod").ZodNullable>; archivedAt: import("zod").ZodNullable>; owner: import("zod").ZodNullable>>; version: import("zod").ZodNullable>; topics: import("zod").ZodNullable, "many">>>; }, "strip", import("zod").ZodTypeAny, { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }, { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }>, "many">>; error: import("zod").ZodString; }, "strip", import("zod").ZodTypeAny, { error: string; success: boolean; operation: "get_topic_posts"; posts?: { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }[] | undefined; }, { error: string; success: boolean; operation: "get_topic_posts"; posts?: { title: string; id: string; content?: unknown; version?: number | null | undefined; owner?: { name: string; id: string; } | null | undefined; publishedAt?: string | null | undefined; updatedAt?: string | null | undefined; insertedAt?: string | null | undefined; archivedAt?: string | null | undefined; topics?: { name: string; id: string; }[] | null | undefined; }[] | undefined; }>, import("zod").ZodObject<{ operation: import("zod").ZodLiteral<"list_topics">; success: import("zod").ZodBoolean; topics: import("zod").ZodOptional, "many">>; error: import("zod").ZodString; }, "strip", import("zod").ZodTypeAny, { error: string; success: boolean; operation: "list_topics"; topics?: { name: string; id: string; }[] | undefined; }, { error: string; success: boolean; operation: "list_topics"; topics?: { name: string; id: string; }[] | undefined; }>]>; static readonly shortDescription = "Slab knowledge management for searching and managing posts"; static readonly longDescription = "\n Slab is a knowledge management platform for modern teams.\n This bubble provides operations for:\n - Searching posts across the workspace\n - Retrieving specific post details and content\n - Listing all organization posts\n - Getting posts within specific topics\n - Listing all topics in the organization\n\n Authentication:\n - Uses API token (available on Business/Enterprise plans)\n - Token is passed via Authorization header\n\n Use Cases:\n - Search internal knowledge base from automated workflows\n - Sync documentation with external systems\n - Build AI assistants that leverage internal knowledge\n - Automate content updates across the organization\n "; static readonly alias = "slab-kb"; constructor(params?: T, context?: BubbleContext); /** * Choose the appropriate credential for Slab API */ protected chooseCredential(): string | undefined; /** * Test if the credential is valid by making a simple API call */ testCredential(): Promise; /** * Perform the Slab operation */ protected performAction(context?: BubbleContext): Promise>; /** * Make an authenticated GraphQL request to Slab */ private makeSlabRequest; /** * Search posts by query */ private searchPosts; /** * Get a specific post by ID */ private getPost; /** * List all organization posts */ private listPosts; /** * Get posts within a specific topic */ private getTopicPosts; /** * List all topics in the organization */ private listTopics; } //# sourceMappingURL=slab.d.ts.map