import { z } from '@botpress/sdk';
import type { AgentConfig, PrimitiveReference, ToolReference } from '../agent-project/index.js';
export declare const DEPLOYED_AGENT_MANIFEST_SCHEMA_VERSION = 1;
export declare const DEPLOYED_AGENT_MANIFEST_FILE_KEY = ".adk/deployed-agent-manifest.json";
export declare const ADK_MANIFEST_BOT_TAGS: {
    readonly adkManifestVersion: string;
};
export declare const DEPLOYED_AGENT_MANIFEST_TAGS: {
    readonly type: "adk-deployed-agent-manifest";
    readonly schemaVersion: string;
};
export declare const deployedAgentManifestPrimitiveSchema: z.ZodObject<{
    definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
    source: z.ZodObject<{
        path: z.ZodString;
        exportName: z.ZodString;
    }, "strip", {
        path: string;
        exportName: string;
    }, {
        path: string;
        exportName: string;
    }>;
}, "strip", {
    source: {
        path: string;
        exportName: string;
    };
    definition: Record<string, unknown>;
}, {
    source: {
        path: string;
        exportName: string;
    };
    definition: Record<string, unknown>;
}>;
export declare const deployedAgentManifestSchema: z.ZodObject<{
    schemaVersion: z.ZodLiteral<1>;
    generatedAt: z.ZodString;
    agent: z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        configuration: z.ZodOptional<z.ZodObject<{
            schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        }, "strip", {
            schema: Record<string, unknown>;
        }, {
            schema: Record<string, unknown>;
        }>>;
        defaultModels: z.ZodOptional<z.ZodUnknown>;
        secrets: z.ZodArray<z.ZodObject<{
            name: z.ZodString;
            optional: z.ZodBoolean;
            description: z.ZodOptional<z.ZodString>;
        }, "strip", {
            name: string;
            optional: boolean;
            description?: string | undefined;
        }, {
            name: string;
            optional: boolean;
            description?: string | undefined;
        }>, "many">;
        events: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, "strip", {
        secrets: {
            name: string;
            optional: boolean;
            description?: string | undefined;
        }[];
        name?: string | undefined;
        description?: string | undefined;
        tags?: Record<string, unknown> | undefined;
        configuration?: {
            schema: Record<string, unknown>;
        } | undefined;
        defaultModels?: unknown;
        events?: Record<string, unknown> | undefined;
    }, {
        secrets: {
            name: string;
            optional: boolean;
            description?: string | undefined;
        }[];
        name?: string | undefined;
        description?: string | undefined;
        tags?: Record<string, unknown> | undefined;
        configuration?: {
            schema: Record<string, unknown>;
        } | undefined;
        defaultModels?: unknown;
        events?: Record<string, unknown> | undefined;
    }>;
    primitives: z.ZodObject<{
        actions: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
        tools: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
        workflows: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
        conversations: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
        triggers: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
        tables: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
        knowledge: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
        customComponents: z.ZodArray<z.ZodObject<{
            definition: z.ZodRecord<z.ZodString, z.ZodUnknown>;
            source: z.ZodObject<{
                path: z.ZodString;
                exportName: z.ZodString;
            }, "strip", {
                path: string;
                exportName: string;
            }, {
                path: string;
                exportName: string;
            }>;
        }, "strip", {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }, {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }>, "many">;
    }, "strip", {
        actions: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        workflows: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        conversations: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        knowledge: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tools: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        triggers: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tables: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        customComponents: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
    }, {
        actions: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        workflows: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        conversations: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        knowledge: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tools: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        triggers: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tables: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        customComponents: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
    }>;
}, "strip", {
    generatedAt: string;
    schemaVersion: 1;
    agent: {
        secrets: {
            name: string;
            optional: boolean;
            description?: string | undefined;
        }[];
        name?: string | undefined;
        description?: string | undefined;
        tags?: Record<string, unknown> | undefined;
        configuration?: {
            schema: Record<string, unknown>;
        } | undefined;
        defaultModels?: unknown;
        events?: Record<string, unknown> | undefined;
    };
    primitives: {
        actions: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        workflows: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        conversations: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        knowledge: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tools: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        triggers: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tables: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        customComponents: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
    };
}, {
    generatedAt: string;
    schemaVersion: 1;
    agent: {
        secrets: {
            name: string;
            optional: boolean;
            description?: string | undefined;
        }[];
        name?: string | undefined;
        description?: string | undefined;
        tags?: Record<string, unknown> | undefined;
        configuration?: {
            schema: Record<string, unknown>;
        } | undefined;
        defaultModels?: unknown;
        events?: Record<string, unknown> | undefined;
    };
    primitives: {
        actions: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        workflows: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        conversations: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        knowledge: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tools: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        triggers: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        tables: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
        customComponents: {
            source: {
                path: string;
                exportName: string;
            };
            definition: Record<string, unknown>;
        }[];
    };
}>;
export type DeployedAgentManifestPrimitive = z.infer<typeof deployedAgentManifestPrimitiveSchema>;
export type DeployedAgentManifest = z.infer<typeof deployedAgentManifestSchema>;
export interface DeployedAgentManifestProject {
    config?: AgentConfig;
    actions: PrimitiveReference[];
    tools: ToolReference[];
    workflows: PrimitiveReference[];
    conversations: PrimitiveReference[];
    triggers: PrimitiveReference[];
    tables: PrimitiveReference[];
    knowledge: PrimitiveReference[];
    customComponents: PrimitiveReference[];
}
export interface CreateDeployedAgentManifestOptions {
    generatedAt?: string;
}
export interface DeployedAgentManifestUploadClient {
    uploadFile(input: {
        key: string;
        content: string;
        contentType: string;
        tags: Record<string, string>;
        index: boolean;
    }): Promise<unknown>;
}
export interface DeployedAgentBotTagClient {
    getBot(input: {
        id: string;
    }): Promise<{
        bot: {
            tags?: Record<string, string>;
        };
    }>;
    updateBot(input: {
        id: string;
        tags: Record<string, string>;
    }): Promise<unknown>;
}
export declare function createDeployedAgentManifest(project: DeployedAgentManifestProject, options: CreateDeployedAgentManifestOptions): DeployedAgentManifest;
export declare function serializeDeployedAgentManifest(manifest: DeployedAgentManifest): string;
export declare function uploadDeployedAgentManifest(client: DeployedAgentManifestUploadClient, manifest: DeployedAgentManifest): Promise<{
    key: string;
}>;
export declare function tagDeployedAgentManifestBot(client: DeployedAgentBotTagClient, botId: string): Promise<void>;
//# sourceMappingURL=index.d.ts.map