export interface AgentSubscription {
    id: string;
    agent_id: string;
    topic: string;
    filter?: Record<string, any>;
    reaction_type: 'durable' | 'pipeline' | 'mcp_query' | 'capability';
    workflow_type?: string;
    pipeline_id?: string;
    mcp_prompt?: string;
    server_id?: string;
    tool_name?: string;
    input_mapping: Record<string, any>;
    execute_as?: string;
    enabled: boolean;
    created_at: string;
    updated_at: string;
}
export interface ActiveSubscription extends AgentSubscription {
    agent_name: string;
    agent_user_id?: string;
}
export declare function listSubscriptions(agentId: string): Promise<AgentSubscription[]>;
export declare function getSubscription(id: string): Promise<AgentSubscription | null>;
export declare function createSubscription(agentId: string, data: Partial<AgentSubscription>): Promise<AgentSubscription>;
export declare function updateSubscription(id: string, data: Partial<AgentSubscription>): Promise<AgentSubscription | null>;
export declare function deleteSubscription(id: string): Promise<boolean>;
export declare function listActiveSubscriptions(): Promise<ActiveSubscription[]>;
/**
 * Seed a subscription at startup (insert-if-absent).
 * Conflict on (agent_id, topic) — DB is source of truth after first boot.
 */
export declare function seedSubscription(agentId: string, data: Partial<AgentSubscription>): Promise<boolean>;
