import { ModuleAdapterInterface } from '@defikitdotnet/agent-framework-core'; import type { DatabaseAdapter } from '@elizaos/core'; import type { Database } from 'better-sqlite3'; import { Account, PublicAgent, PublicAgentStatus } from '../models'; import { Account as Ac } from '@defikitdotnet/agent-framework-core'; /** * SQL schema for public agent related tables */ export declare const sqliteTables = "\nPRAGMA foreign_keys=ON;\nBEGIN TRANSACTION;\n\n-- Public agents table for storing published agents\nCREATE TABLE IF NOT EXISTS \"public_agents\" ( \n \"agentId\" TEXT PRIMARY KEY REFERENCES accounts(id) ON DELETE CASCADE, \n \"publishedAt\" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, \n \"status\" TEXT DEFAULT 'published' CHECK(status IN ('published', 'unpublished'))\n);\n\n-- Create indexes for faster queries\nCREATE INDEX IF NOT EXISTS \"idx_public_agents_status\" ON \"public_agents\" (\"status\");\nCREATE INDEX IF NOT EXISTS \"idx_public_agents_publishedAt\" ON \"public_agents\" (\"publishedAt\");\n\nCOMMIT;\n"; /** * Public agent with account details */ export interface PublicAgentWithAccount extends PublicAgent { account: Account; } export interface PublicAgentWithAccountResult { agentId: string; publishedAt: string; status: PublicAgentStatus; id: string; createdAt: string; name: string; username: string; email: string; avatarUrl?: string; details: string | null; character: string | null; questions: string | null; createdBy: string; isExportData: boolean; type: string; } /** * PublicAgentAdapter for database operations */ export declare class PublicAgentAdapter implements ModuleAdapterInterface { protected databaseAdapter: D; /** * Constructor */ constructor(databaseAdapter: D); /**` * Initialize database tables */ init(): void; /** * Get the database adapter */ getDatabase(): D; /** * Get database adapter with type */ getDatabaseAdapter(): DatabaseAdapter; /** * Get a public agent by agentId */ getPublicAgent(agentId: string): Promise; /** * Get a public agent with account details */ getPublicAgentWithAccount(agentId: string): Promise; /** * Publish an agent */ publishAgent(agentId: string): Promise; /** * Unpublish an agent */ unpublishAgent(agentId: string): Promise; /** * Remove an agent from public listing */ removePublicAgent(agentId: string): Promise; /** * Get all published agents with account details */ getPublishedAgents(params: { page: number; limit: number; search: string; }): Promise<{ agents: PublicAgentWithAccount[]; total: number; }>; updateAccount(account: Ac): Promise; } //# sourceMappingURL=PublicAgentAdapter.d.ts.map