import type { ArtifactDescriptor } from '../artifacts/types.js';
import type { MemoryReviewState, ProvenanceLink } from '../state/memory-store.js';
import type { KnowledgePacket, KnowledgePacketDetail, KnowledgePacketItem } from './types.js';
import type { KnowledgeSourceType } from './types.js';
export declare const LINT_NAMESPACE = "knowledge-lint";
export declare const DEFAULT_PACKET_LIMIT = 6;
export declare const DEFAULT_PACKET_BUDGET: Record<KnowledgePacketDetail, number>;
export declare const DAY_MS: number;
export declare const SOURCE_REFRESH_WINDOWS_MS: Record<string, number>;
export declare const LIGHT_CONSOLIDATION_THRESHOLD = 45;
export declare const DEEP_CONSOLIDATION_AUTOPROMOTE_THRESHOLD = 72;
export declare const KNOWLEDGE_INJECTION_TRUST_TIERS: readonly ["reviewed", "fresh", "stale"];
export declare const KNOWLEDGE_INJECTION_USE_AS_VALUES: readonly ["reference-material"];
export declare const KNOWLEDGE_INJECTION_RETENTION_VALUES: readonly ["task-only"];
export declare const KNOWLEDGE_INJECTION_INGEST_MODES: readonly ["keyword-ranked", "semantic-ranked", "hybrid-ranked"];
export type KnowledgeInjectionTrustTier = typeof KNOWLEDGE_INJECTION_TRUST_TIERS[number];
export type KnowledgeInjectionUseAs = typeof KNOWLEDGE_INJECTION_USE_AS_VALUES[number];
export type KnowledgeInjectionRetention = typeof KNOWLEDGE_INJECTION_RETENTION_VALUES[number];
export type KnowledgeInjectionIngestMode = typeof KNOWLEDGE_INJECTION_INGEST_MODES[number];
export interface KnowledgeInjectionProvenance {
    readonly source: 'project-memory';
    readonly links: readonly ProvenanceLink[];
}
export declare function tokenize(value: string): string[];
export declare function slugify(value: string): string;
export declare function inferKnowledgeInjectionTrustTier(reviewState: MemoryReviewState): KnowledgeInjectionTrustTier;
export declare function summarizeKnowledgeInjectionProvenance(provenance: KnowledgeInjectionProvenance): string;
export declare function canonicalizeUri(input: string): string | null;
export declare function mergeTags(...groups: Array<readonly string[] | undefined>): string[];
export declare function scoreHaystack(haystack: string, taskTokens: readonly string[], scopeTokens: readonly string[]): {
    score: number;
    reason: string;
};
export declare function estimateTokens(...chunks: Array<string | undefined>): number;
export declare function trimForDetail(value: string | undefined, detail: KnowledgePacketDetail): string | undefined;
export declare function renderPacket(items: readonly KnowledgePacketItem[], packet: Pick<KnowledgePacket, 'detail' | 'budgetLimit' | 'estimatedTokens' | 'strategy'>): string | null;
export declare function inferSourceTypeFromArtifact(artifact: ArtifactDescriptor): KnowledgeSourceType;
export declare function isHttpUri(value: string | undefined): boolean;
export declare function summarizeCompact(value: string | undefined, maxLength?: number): string | undefined;
export declare function coerceStringArray(value: unknown): string[];
export declare function topKeywords(input: string, limit?: number): string[];
export declare function readMetadataStrings(metadata: Record<string, unknown>, keys: readonly string[]): string[];
export declare function extractTaggedValues(tags: readonly string[], prefixes: readonly string[]): string[];
export declare function usageWindowCutoff(days?: number): number;
export declare function getSourceRefreshWindowMs(source: {
    readonly connectorId: string;
    readonly sourceType: KnowledgeSourceType;
}): number;
export declare function isSourcePastRefreshWindow(source: {
    readonly connectorId: string;
    readonly sourceType: KnowledgeSourceType;
    readonly lastCrawledAt?: number | null | undefined;
    readonly status: string;
}): boolean;
//# sourceMappingURL=shared.d.ts.map