import type { BaseAgent, EnhancedRunner } from "@iqai/adk";
export interface Agent {
    relativePath: string;
    name: string;
    absolutePath: string;
    projectRoot: string;
    instance?: BaseAgent;
}
export interface ContentPart {
    text?: string;
    inlineData?: {
        mimeType: string;
        data: string;
    };
    functionCall?: {
        name: string;
        args: Record<string, unknown>;
    };
    functionResponse?: {
        id: string;
        name: string;
        response: unknown;
    };
}
export interface EventLike {
    id: string;
    author: string;
    timestamp: number;
    content?: {
        parts?: unknown[];
    };
    actions?: unknown;
    branch?: string;
    partial?: boolean;
    getFunctionCalls?: () => unknown[];
    getFunctionResponses?: () => unknown[];
    isFinalResponse?: () => boolean;
}
export interface LoadedAgent {
    agent: BaseAgent;
    runner: EnhancedRunner;
    sessionId: string;
    userId: string;
    appName: string;
}
export interface ServerConfig {
    agentsDir: string;
    port: number;
    host: string;
    quiet: boolean;
}
export interface AgentListResponse {
    path: string;
    name: string;
    directory: string;
    relativePath: string;
}
export interface MessageRequest {
    message: string;
    attachments?: Array<{
        name: string;
        mimeType: string;
        data: string;
    }>;
}
export interface MessageResponse {
    response: string;
    agentName: string;
}
export interface MessagesResponse {
    messages: Array<{
        id: number;
        type: "user" | "assistant";
        content: string;
        timestamp: string;
    }>;
}
export interface SessionResponse {
    id: string;
    appName: string;
    userId: string;
    state: Record<string, any>;
    eventCount: number;
    lastUpdateTime: number;
    createdAt: number;
}
export interface SessionsResponse {
    sessions: SessionResponse[];
}
export interface CreateSessionRequest {
    state?: Record<string, any>;
    sessionId?: string;
}
export interface EventsResponse {
    events: Array<{
        id: string;
        author: string;
        timestamp: number;
        content: any;
        actions: any;
        functionCalls: any[];
        functionResponses: any[];
        branch?: string;
        isFinalResponse: boolean;
    }>;
    totalCount: number;
}
export interface StateResponse {
    agentState: Record<string, any>;
    userState: Record<string, any>;
    sessionState: Record<string, any>;
    metadata: {
        lastUpdated: number;
        changeCount: number;
        totalKeys: number;
        sizeBytes: number;
    };
}
export interface StateUpdateRequest {
    path: string;
    value: any;
}
//# sourceMappingURL=types.d.ts.map