import type { KnowledgeStore } from '@pellux/goodvibes-sdk/platform/knowledge/store';
import type { KnowledgePacket, KnowledgePacketDetail, KnowledgeSearchResult, KnowledgeUsageRecord } from '@pellux/goodvibes-sdk/platform/knowledge/types';
import type { RuntimeEventBus } from '../runtime/events/index.js';
export interface KnowledgePacketContext {
    readonly store: KnowledgeStore;
    readonly deferUsage: (input: {
        readonly targetKind: KnowledgeUsageRecord['targetKind'];
        readonly targetId: string;
        readonly usageKind: KnowledgeUsageRecord['usageKind'];
        readonly task?: string;
        readonly sessionId?: string;
        readonly score?: number;
        readonly metadata?: Record<string, unknown>;
    }) => void;
    readonly emitIfReady: (fn: (bus: RuntimeEventBus, ctx: {
        readonly traceId: string;
        readonly sessionId: string;
        readonly source: string;
    }) => void, sessionId?: string) => void;
}
export declare function searchKnowledge(context: KnowledgePacketContext, query: string, limit?: number): KnowledgeSearchResult[];
export declare function buildKnowledgePacket(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
    readonly detail?: KnowledgePacketDetail;
    readonly budgetLimit?: number;
}): Promise<KnowledgePacket>;
export declare function buildKnowledgePacketSync(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
    readonly detail?: KnowledgePacketDetail;
    readonly budgetLimit?: number;
}): KnowledgePacket | null;
export declare function buildKnowledgePromptPacketSync(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
    readonly detail?: KnowledgePacketDetail;
    readonly budgetLimit?: number;
}): string | null;
export declare function buildKnowledgePromptPacket(context: KnowledgePacketContext, task: string, writeScope?: readonly string[], limit?: number, options?: {
    readonly detail?: KnowledgePacketDetail;
    readonly budgetLimit?: number;
}): Promise<string | null>;
//# sourceMappingURL=packet.d.ts.map