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<T extends SlabParamsInput = SlabParamsInput> extends ServiceBubble<T, Extract<SlabResult, {
    operation: T['operation'];
}>> {
    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<import("zod").ZodOptional<import("zod").ZodNumber>>;
        after: import("zod").ZodOptional<import("zod").ZodString>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        query: string;
        operation: "search_posts";
        first: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        after?: string | undefined;
    }, {
        query: string;
        operation: "search_posts";
        credentials?: Partial<Record<CredentialType, string>> | 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").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_post";
        post_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_post";
        post_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_posts">;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_posts";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "list_posts";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_topic_posts">;
        topic_id: import("zod").ZodString;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_topic_posts";
        topic_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_topic_posts";
        topic_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_topics">;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_topics";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "list_topics";
        credentials?: Partial<Record<CredentialType, string>> | 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<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            title: import("zod").ZodString;
            highlight: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodUnknown>>;
            content: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodUnknown>>;
            insertedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            publishedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            owner: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>>>;
            topics: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>, "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<import("zod").ZodBoolean>;
        end_cursor: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
        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<import("zod").ZodObject<{
            id: import("zod").ZodString;
            title: import("zod").ZodString;
            content: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodUnknown>>;
            insertedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            publishedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            updatedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            archivedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            owner: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>>>;
            version: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodNumber>>;
            topics: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>, "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<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            title: import("zod").ZodString;
            content: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodUnknown>>;
            insertedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            publishedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            updatedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            archivedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            owner: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>>>;
            version: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodNumber>>;
            topics: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>, "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<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            title: import("zod").ZodString;
            content: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodUnknown>>;
            insertedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            publishedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            updatedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            archivedAt: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            owner: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>>>;
            version: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodNumber>>;
            topics: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
            }, {
                name: string;
                id: string;
            }>, "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<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            name: import("zod").ZodString;
        }, "strip", import("zod").ZodTypeAny, {
            name: string;
            id: string;
        }, {
            name: string;
            id: string;
        }>, "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<boolean>;
    /**
     * Perform the Slab operation
     */
    protected performAction(context?: BubbleContext): Promise<Extract<SlabResult, {
        operation: T['operation'];
    }>>;
    /**
     * 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