import { z } from "zod";
import { AvailableActions, RequestConfig, ConnectionDefinition, Connection } from "./types/connection";
interface PicaOptions {
    /**
     * The descriptor for the Pica client options.
     * @property connectors - Array of connector IDs to filter available actions
     * @property actions - Array of action IDs to filter available actions (default: all actions)
     * @property permissions - Permissions for the Pica client: "read" (GET only), "write" (POST/PUT/PATCH), "admin" (all methods) (default: "admin")
     * @property serverUrl - Custom server URL for Pica API (defaults to https://api.picaos.com)
     * @property identity - Identity value for AuthKit token generation
     * @property identityType - Type of identity for AuthKit ("user", "team", "organization", or "project")
     * @property authkit - Whether to enable AuthKit integration
     * @property knowledgeAgent - Whether to enable Knowledge Agent mode
     * @property knowledgeAgentConfig - Configuration options for Knowledge Agent
     * @property headers - Additional headers to send with requests
     */
    connectors?: string[];
    actions?: string[];
    permissions?: "read" | "write" | "admin";
    serverUrl?: string;
    identity?: string;
    identityType?: "user" | "team" | "organization" | "project";
    authkit?: boolean;
    knowledgeAgent?: boolean;
    knowledgeAgentConfig?: KnowledgeAgentConfig;
    headers?: Record<string, string>;
}
interface KnowledgeAgentConfig {
    includeEnvironmentVariables: boolean;
}
export declare class Pica {
    private secret;
    private connections;
    private connectionDefinitions;
    private systemPromptValue;
    private initialized;
    private identity?;
    private identityType?;
    private useAuthkit;
    private useKnowledgeAgent;
    private knowledgeAgentConfig?;
    private options?;
    private baseUrl;
    private getConnectionUrl;
    private availableActionsUrl;
    private getConnectionDefinitionsUrl;
    constructor(secret: string, options?: PicaOptions);
    generateSystemPrompt(userSystemPrompt?: string): Promise<string>;
    private initialize;
    waitForInitialization(): Promise<string>;
    private initializeConnections;
    private initializeConnectionDefinitions;
    get system(): string;
    private generateHeaders;
    private getAllAvailableActions;
    getAvailablePicaConnectors(): Promise<ConnectionDefinition[]>;
    getAvailableConnectors(platform?: string): Promise<Connection[]>;
    private getSingleAction;
    private getAvailableActions;
    private executePassthrough;
    private getPromptToConnectPlatformTool;
    get intelligenceTool(): {
        getAvailableActions: {
            description: string;
            parameters: z.ZodObject<{
                platform: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                platform: string;
            }, {
                platform: string;
            }>;
            execute: (params: {
                platform: string;
            }) => Promise<{
                success: boolean;
                actions: {
                    _id: string;
                    title: string;
                    tags: string[];
                }[];
                platform: string;
                content: string;
                title?: undefined;
                message?: undefined;
                raw?: undefined;
            } | {
                success: boolean;
                title: string;
                message: any;
                raw: string;
                actions?: undefined;
                platform?: undefined;
                content?: undefined;
            }>;
        };
        getActionKnowledge: {
            description: string;
            parameters: z.ZodObject<{
                platform: z.ZodString;
                actionId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                platform: string;
                actionId: string;
            }, {
                platform: string;
                actionId: string;
            }>;
            execute: (params: {
                platform: string;
                actionId: string;
            }) => Promise<{
                success: boolean;
                action: AvailableActions;
                platform: string;
                content: string;
                title?: undefined;
                message?: undefined;
                raw?: undefined;
            } | {
                success: boolean;
                title: string;
                message: any;
                raw: string;
                action?: undefined;
                platform?: undefined;
                content?: undefined;
            }>;
        };
        execute: {
            description: string;
            parameters: z.ZodObject<{
                platform: z.ZodString;
                action: z.ZodObject<{
                    _id: z.ZodString;
                    path: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    path: string;
                    _id: string;
                }, {
                    path: string;
                    _id: string;
                }>;
                method: z.ZodString;
                connectionKey: z.ZodString;
                data: z.ZodAny;
                pathVariables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
                queryParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                isFormData: z.ZodOptional<z.ZodBoolean>;
                isFormUrlEncoded: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                platform: string;
                action: {
                    path: string;
                    _id: string;
                };
                method: string;
                connectionKey: string;
                headers?: Record<string, any> | undefined;
                data?: any;
                pathVariables?: Record<string, string | number | boolean> | undefined;
                queryParams?: Record<string, any> | undefined;
                isFormData?: boolean | undefined;
                isFormUrlEncoded?: boolean | undefined;
            }, {
                platform: string;
                action: {
                    path: string;
                    _id: string;
                };
                method: string;
                connectionKey: string;
                headers?: Record<string, any> | undefined;
                data?: any;
                pathVariables?: Record<string, string | number | boolean> | undefined;
                queryParams?: Record<string, any> | undefined;
                isFormData?: boolean | undefined;
                isFormUrlEncoded?: boolean | undefined;
            }>;
            execute: (params: {
                platform: string;
                action: {
                    _id: string;
                    path: string;
                };
                method: string;
                connectionKey: string;
                data?: any;
                pathVariables?: Record<string, string | number | boolean>;
                queryParams?: Record<string, any>;
                headers?: Record<string, any>;
                isFormData?: boolean;
                isFormUrlEncoded?: boolean;
            }) => Promise<{
                success: boolean;
                title: string;
                message: any;
                raw: string;
            }>;
        };
    };
    get oneTool(): {
        getAvailableActions: {
            description: string;
            parameters: z.ZodObject<{
                platform: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                platform: string;
            }, {
                platform: string;
            }>;
            execute: (params: {
                platform: string;
            }) => Promise<{
                success: boolean;
                actions: {
                    _id: string;
                    title: string;
                    tags: string[];
                }[];
                platform: string;
                content: string;
                title?: undefined;
                message?: undefined;
                raw?: undefined;
            } | {
                success: boolean;
                title: string;
                message: any;
                raw: string;
                actions?: undefined;
                platform?: undefined;
                content?: undefined;
            }>;
        };
        getActionKnowledge: {
            description: string;
            parameters: z.ZodObject<{
                platform: z.ZodString;
                actionId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                platform: string;
                actionId: string;
            }, {
                platform: string;
                actionId: string;
            }>;
            execute: (params: {
                platform: string;
                actionId: string;
            }) => Promise<{
                success: boolean;
                action: AvailableActions;
                platform: string;
                content: string;
                title?: undefined;
                message?: undefined;
                raw?: undefined;
            } | {
                success: boolean;
                title: string;
                message: any;
                raw: string;
                action?: undefined;
                platform?: undefined;
                content?: undefined;
            }>;
        };
        execute: {
            description: string;
            parameters: z.ZodObject<{
                platform: z.ZodString;
                action: z.ZodObject<{
                    _id: z.ZodString;
                    path: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    path: string;
                    _id: string;
                }, {
                    path: string;
                    _id: string;
                }>;
                method: z.ZodString;
                connectionKey: z.ZodString;
                data: z.ZodAny;
                pathVariables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
                queryParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
                isFormData: z.ZodOptional<z.ZodBoolean>;
                isFormUrlEncoded: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                platform: string;
                action: {
                    path: string;
                    _id: string;
                };
                method: string;
                connectionKey: string;
                headers?: Record<string, any> | undefined;
                data?: any;
                pathVariables?: Record<string, string | number | boolean> | undefined;
                queryParams?: Record<string, any> | undefined;
                isFormData?: boolean | undefined;
                isFormUrlEncoded?: boolean | undefined;
            }, {
                platform: string;
                action: {
                    path: string;
                    _id: string;
                };
                method: string;
                connectionKey: string;
                headers?: Record<string, any> | undefined;
                data?: any;
                pathVariables?: Record<string, string | number | boolean> | undefined;
                queryParams?: Record<string, any> | undefined;
                isFormData?: boolean | undefined;
                isFormUrlEncoded?: boolean | undefined;
            }>;
            execute: (params: {
                platform: string;
                action: {
                    _id: string;
                    path: string;
                };
                method: string;
                connectionKey: string;
                data?: any;
                pathVariables?: Record<string, string | number | boolean>;
                queryParams?: Record<string, any>;
                headers?: Record<string, any>;
                isFormData?: boolean;
                isFormUrlEncoded?: boolean;
            }) => Promise<{
                success: boolean;
                data: unknown;
                connectionKey: string;
                platform: string;
                action: string;
                requestConfig: RequestConfig;
                content: string;
                title?: undefined;
                message?: undefined;
                raw?: undefined;
            } | {
                success: boolean;
                title: string;
                message: any;
                raw: string;
                data?: undefined;
                connectionKey?: undefined;
                platform?: undefined;
                action?: undefined;
                requestConfig?: undefined;
                content?: undefined;
            }>;
        };
    };
}
export {};
