import { Signer } from '@hashgraph/sdk';
import { DAppSigner } from '@hashgraph/hedera-wallet-connect';
import { RegistrationProgressCallback } from '../hcs-10/types';
import { LogLevel } from '../utils/logger';
import { FeeConfigBuilderInterface } from '../fees';
import { NetworkType } from '../utils/types';
export declare enum ProfileType {
    PERSONAL = 0,
    AI_AGENT = 1,
    MCP_SERVER = 2
}
export declare enum AIAgentType {
    MANUAL = 0,
    AUTONOMOUS = 1
}
export declare enum EndpointType {
    REST = 0,
    WEBSOCKET = 1,
    GRPC = 2
}
export declare enum AIAgentCapability {
    TEXT_GENERATION = 0,
    IMAGE_GENERATION = 1,
    AUDIO_GENERATION = 2,
    VIDEO_GENERATION = 3,
    CODE_GENERATION = 4,
    LANGUAGE_TRANSLATION = 5,
    SUMMARIZATION_EXTRACTION = 6,
    KNOWLEDGE_RETRIEVAL = 7,
    DATA_INTEGRATION = 8,
    MARKET_INTELLIGENCE = 9,
    TRANSACTION_ANALYTICS = 10,
    SMART_CONTRACT_AUDIT = 11,
    GOVERNANCE_FACILITATION = 12,
    SECURITY_MONITORING = 13,
    COMPLIANCE_ANALYSIS = 14,
    FRAUD_DETECTION = 15,
    MULTI_AGENT_COORDINATION = 16,
    API_INTEGRATION = 17,
    WORKFLOW_AUTOMATION = 18
}
export declare enum MCPServerCapability {
    RESOURCE_PROVIDER = 0,
    TOOL_PROVIDER = 1,
    PROMPT_TEMPLATE_PROVIDER = 2,
    LOCAL_FILE_ACCESS = 3,
    DATABASE_INTEGRATION = 4,
    API_INTEGRATION = 5,
    WEB_ACCESS = 6,
    KNOWLEDGE_BASE = 7,
    MEMORY_PERSISTENCE = 8,
    CODE_ANALYSIS = 9,
    CONTENT_GENERATION = 10,
    COMMUNICATION = 11,
    DOCUMENT_PROCESSING = 12,
    CALENDAR_SCHEDULE = 13,
    SEARCH = 14,
    ASSISTANT_ORCHESTRATION = 15
}
export declare enum VerificationType {
    DNS = "dns",
    SIGNATURE = "signature",
    CHALLENGE = "challenge"
}
export type SocialPlatform = 'twitter' | 'github' | 'discord' | 'telegram' | 'linkedin' | 'youtube' | 'website' | 'x';
export interface SocialLink {
    platform: SocialPlatform;
    handle: string;
}
export interface AIAgentDetails {
    type: AIAgentType;
    capabilities: AIAgentCapability[];
    model: string;
    creator?: string;
}
export interface MCPServerVerification {
    type: VerificationType;
    value: string;
    dns_field?: string;
    challenge_path?: string;
}
export interface MCPServerConnectionInfo {
    url: string;
    transport: 'stdio' | 'sse';
}
export interface MCPServerHost {
    minVersion?: string;
}
export interface MCPServerResource {
    name: string;
    description: string;
}
export interface MCPServerTool {
    name: string;
    description: string;
}
export interface MCPServerDetails {
    version: string;
    connectionInfo: MCPServerConnectionInfo;
    services: MCPServerCapability[];
    description: string;
    verification?: MCPServerVerification;
    host?: MCPServerHost;
    capabilities?: string[];
    resources?: MCPServerResource[];
    tools?: MCPServerTool[];
    maintainer?: string;
    repository?: string;
    docs?: string;
}
export interface BaseProfile {
    version: string;
    type: ProfileType;
    display_name: string;
    alias?: string;
    bio?: string;
    socials?: SocialLink[];
    profileImage?: string;
    properties?: Record<string, any>;
    inboundTopicId?: string;
    outboundTopicId?: string;
}
export interface PersonalProfile extends BaseProfile {
    type: ProfileType.PERSONAL;
}
export interface AIAgentProfile extends BaseProfile {
    type: ProfileType.AI_AGENT;
    aiAgent: AIAgentDetails;
}
export interface MCPServerProfile extends BaseProfile {
    type: ProfileType.MCP_SERVER;
    mcpServer: MCPServerDetails;
}
export type HCS11Profile = PersonalProfile | AIAgentProfile | MCPServerProfile;
export declare enum InboundTopicType {
    PUBLIC = "PUBLIC",
    CONTROLLED = "CONTROLLED",
    FEE_BASED = "FEE_BASED"
}
export interface HCS11Auth {
    operatorId: string;
    privateKey?: string;
    signer?: DAppSigner | Signer;
}
export interface HCS11ClientConfig {
    network: NetworkType;
    auth: HCS11Auth;
    logLevel?: LogLevel;
    silent?: boolean;
    keyType?: 'ed25519' | 'ecdsa';
}
export interface TransactionResult<T = unknown> {
    success: boolean;
    error?: string;
    result?: T;
}
export interface InscribeProfileResponse {
    profileTopicId: string;
    transactionId: string;
    success: boolean;
    error?: string;
    inboundTopicId?: string;
    outboundTopicId?: string;
}
export interface InscribeImageResponse {
    imageTopicId: string;
    transactionId: string;
    success: boolean;
    error?: string;
}
export interface AgentMetadata {
    type: 'autonomous' | 'manual';
    model?: string;
    socials?: {
        [key in SocialPlatform]?: string;
    };
    creator?: string;
    properties?: Record<string, any>;
}
export interface ProgressOptions {
    progressCallback?: RegistrationProgressCallback;
}
export interface InscribeImageOptions extends ProgressOptions {
    waitForConfirmation?: boolean;
}
export interface InscribeProfileOptions extends ProgressOptions {
    waitForConfirmation?: boolean;
}
export interface AgentConfiguration {
    name: string;
    alias: string;
    bio: string;
    capabilities: number[];
    metadata: AgentMetadata;
    pfpBuffer?: Buffer;
    pfpFileName?: string;
    network: NetworkType;
    inboundTopicType: InboundTopicType;
    feeConfig?: FeeConfigBuilderInterface;
    connectionFeeConfig?: FeeConfigBuilderInterface;
    existingAccount?: {
        accountId: string;
        privateKey: string;
    };
    existingPfpTopicId?: string;
}
export interface PersonConfig extends BaseProfile {
    type: ProfileType.PERSONAL;
    pfpBuffer?: Buffer;
    pfpFileName?: string;
}
export interface MCPServerConfig {
    name: string;
    alias?: string;
    bio?: string;
    socials?: SocialLink[];
    network: NetworkType;
    mcpServer: MCPServerDetails;
    pfpBuffer?: Buffer;
    pfpFileName?: string;
    existingPfpTopicId?: string;
    existingAccount?: {
        accountId: string;
        privateKey: string;
    };
}
export declare const SUPPORTED_SOCIAL_PLATFORMS: SocialPlatform[];
export declare const capabilityNameToCapabilityMap: Record<string, AIAgentCapability>;
export declare const mcpServiceNameToCapabilityMap: Record<string, MCPServerCapability>;
//# sourceMappingURL=types.d.ts.map