import { Table, Trigger, Action, Workflow, Knowledge, Conversation } from '../primitives';
import type { IntegrationActions } from '../_types/integration-actions';
import { Environment } from '../environment';
import { IntegrationPackage } from '@botpress/sdk';
import { AgentConfig } from '../define-config';
import { Zai } from '@botpress/zai';
/**
 * Integration primitive with typed actions
 */
export interface Integration<I extends keyof IntegrationActions = keyof IntegrationActions> {
    alias: string;
    definition: IntegrationPackage['definition'];
    actions: IntegrationActions[I];
}
interface IntegrationArray extends Array<Integration> {
    get<I extends keyof IntegrationActions>(name: I | (string & {})): Integration<I> | undefined;
}
/**
 * ADK Project API - provides typed access to all agent primitives
 */
export interface Project {
    /** Agent configuration */
    config: AgentConfig;
    /** Installed integrations with typed actions */
    integrations: IntegrationArray;
    /** Action primitives */
    actions: Action<any, any>[];
    /** Knowledge base primitives */
    knowledge: Knowledge[];
    /** Table primitives */
    tables: Table[];
    /** Workflow primitives */
    workflows: Workflow[];
    /** Conversation primitives */
    conversations: Conversation<any, any>[];
    /** Trigger primitives */
    triggers: Trigger<any>[];
}
/**
 * ADK API - runtime interface for agent development
 */
export interface ADK {
    environment: typeof Environment;
    /** Project primitives and configuration */
    project: Project;
    /** Zai is an LLM utility toolkit */
    zai: Zai;
}
/**
 * ADK API - provides typed access to project primitives and utilities
 */
export declare const adk: ADK;
export {};
//# sourceMappingURL=adk.d.ts.map