import { ServiceBubble } from '../../../types/service-bubble-class.js';
import type { BubbleContext } from '../../../types/bubble.js';
import { CredentialType } from '@bubblelab/shared-schemas';
import { type SendSafelyParamsInput, type SendSafelyResult } from './sendsafely.schema.js';
/**
 * SendSafely Service Bubble
 *
 * Encrypted file transfer and secure messaging via SendSafely.
 * Uses the official @sendsafely/sendsafely SDK (v3).
 *
 * Features:
 * - Send encrypted files to recipients via secure links
 * - Send encrypted messages via secure links
 * - Retrieve package information
 *
 * Use cases:
 * - Share sensitive documents securely with external parties
 * - Send encrypted messages through automated workflows
 * - Integrate encrypted file transfer into BubbleFlow pipelines
 *
 * Security Features:
 * - End-to-end encryption via SendSafely SDK
 * - Multi-field credential storage (host + apiKey + apiSecret)
 * - Input validation with Zod schemas
 */
export declare class SendSafelyBubble<T extends SendSafelyParamsInput = SendSafelyParamsInput> extends ServiceBubble<T, Extract<SendSafelyResult, {
    operation: T['operation'];
}>> {
    static readonly type: "service";
    static readonly service = "sendsafely";
    static readonly authType: "apikey";
    static readonly bubbleName = "sendsafely";
    static readonly schema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"send_file">;
        recipientEmail: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>;
        fileName: import("zod").ZodString;
        fileData: import("zod").ZodString;
        message: import("zod").ZodOptional<import("zod").ZodString>;
        lifeDays: import("zod").ZodOptional<import("zod").ZodNumber>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        fileName: string;
        operation: "send_file";
        recipientEmail: string | string[];
        fileData: string;
        message?: string | undefined;
        lifeDays?: number | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        fileName: string;
        operation: "send_file";
        recipientEmail: string | string[];
        fileData: string;
        message?: string | undefined;
        lifeDays?: number | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"send_message">;
        recipientEmail: import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodArray<import("zod").ZodString, "many">]>;
        message: import("zod").ZodString;
        lifeDays: import("zod").ZodOptional<import("zod").ZodNumber>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        message: string;
        operation: "send_message";
        recipientEmail: string | string[];
        lifeDays?: number | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        message: string;
        operation: "send_message";
        recipientEmail: string | string[];
        lifeDays?: number | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_package">;
        package_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_package";
        package_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_package";
        package_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>]>;
    static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"send_file">;
        success: import("zod").ZodBoolean;
        packageId: import("zod").ZodOptional<import("zod").ZodString>;
        secureLink: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "send_file";
        success: boolean;
        error: string;
        packageId?: string | undefined;
        secureLink?: string | undefined;
    }, {
        operation: "send_file";
        success: boolean;
        error: string;
        packageId?: string | undefined;
        secureLink?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"send_message">;
        success: import("zod").ZodBoolean;
        packageId: import("zod").ZodOptional<import("zod").ZodString>;
        secureLink: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "send_message";
        success: boolean;
        error: string;
        packageId?: string | undefined;
        secureLink?: string | undefined;
    }, {
        operation: "send_message";
        success: boolean;
        error: string;
        packageId?: string | undefined;
        secureLink?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_package">;
        success: import("zod").ZodBoolean;
        package: import("zod").ZodOptional<import("zod").ZodObject<{
            packageId: import("zod").ZodString;
            packageCode: import("zod").ZodOptional<import("zod").ZodString>;
            serverSecret: import("zod").ZodOptional<import("zod").ZodString>;
            recipients: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                recipientId: import("zod").ZodString;
                email: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                recipientId: string;
                email: string;
            }, {
                recipientId: string;
                email: string;
            }>, "many">>;
            files: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                fileId: import("zod").ZodString;
                fileName: import("zod").ZodString;
                fileSize: import("zod").ZodOptional<import("zod").ZodNumber>;
            }, "strip", import("zod").ZodTypeAny, {
                fileId: string;
                fileName: string;
                fileSize?: number | undefined;
            }, {
                fileId: string;
                fileName: string;
                fileSize?: number | undefined;
            }>, "many">>;
            state: import("zod").ZodOptional<import("zod").ZodString>;
            life: import("zod").ZodOptional<import("zod").ZodNumber>;
            secureLink: import("zod").ZodOptional<import("zod").ZodString>;
        }, "strip", import("zod").ZodTypeAny, {
            packageId: string;
            packageCode?: string | undefined;
            serverSecret?: string | undefined;
            recipients?: {
                recipientId: string;
                email: string;
            }[] | undefined;
            files?: {
                fileId: string;
                fileName: string;
                fileSize?: number | undefined;
            }[] | undefined;
            state?: string | undefined;
            life?: number | undefined;
            secureLink?: string | undefined;
        }, {
            packageId: string;
            packageCode?: string | undefined;
            serverSecret?: string | undefined;
            recipients?: {
                recipientId: string;
                email: string;
            }[] | undefined;
            files?: {
                fileId: string;
                fileName: string;
                fileSize?: number | undefined;
            }[] | undefined;
            state?: string | undefined;
            life?: number | undefined;
            secureLink?: string | undefined;
        }>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_package";
        success: boolean;
        error: string;
        package?: {
            packageId: string;
            packageCode?: string | undefined;
            serverSecret?: string | undefined;
            recipients?: {
                recipientId: string;
                email: string;
            }[] | undefined;
            files?: {
                fileId: string;
                fileName: string;
                fileSize?: number | undefined;
            }[] | undefined;
            state?: string | undefined;
            life?: number | undefined;
            secureLink?: string | undefined;
        } | undefined;
    }, {
        operation: "get_package";
        success: boolean;
        error: string;
        package?: {
            packageId: string;
            packageCode?: string | undefined;
            serverSecret?: string | undefined;
            recipients?: {
                recipientId: string;
                email: string;
            }[] | undefined;
            files?: {
                fileId: string;
                fileName: string;
                fileSize?: number | undefined;
            }[] | undefined;
            state?: string | undefined;
            life?: number | undefined;
            secureLink?: string | undefined;
        } | undefined;
    }>]>;
    static readonly shortDescription = "Encrypted file transfer and secure messaging via SendSafely";
    static readonly longDescription = "\n    SendSafely integration for encrypted file transfer and secure messaging.\n    Uses the official SendSafely SDK with end-to-end encryption.\n\n    Features:\n    - Send encrypted files to recipients via secure links\n    - Send encrypted messages via secure links\n    - Retrieve package information\n\n    Use cases:\n    - Share sensitive documents securely with external parties\n    - Send encrypted messages through automated workflows\n    - Integrate encrypted file transfer into BubbleFlow pipelines\n\n    Security Features:\n    - End-to-end encryption via SendSafely SDK\n    - Multi-field credential (host + API key + API secret)\n    - Input validation with Zod schemas\n  ";
    static readonly alias = "encrypted-transfer";
    constructor(params?: T, context?: BubbleContext);
    testCredential(): Promise<boolean>;
    protected performAction(context?: BubbleContext): Promise<Extract<SendSafelyResult, {
        operation: T['operation'];
    }>>;
    private sendFile;
    private sendMessage;
    private getPackage;
    protected chooseCredential(): string | undefined;
}
//# sourceMappingURL=sendsafely.d.ts.map