import { ConfigManager } from '../config/index.js';
export declare const DEFAULT_MEMORY_EMBEDDING_DIMS = 384;
export type MemoryEmbeddingProviderState = 'healthy' | 'degraded' | 'disabled' | 'unconfigured';
export type MemoryEmbeddingUsage = 'record' | 'query' | 'doctor';
export interface MemoryEmbeddingRequest {
    readonly text: string;
    readonly dimensions: number;
    readonly usage: MemoryEmbeddingUsage;
    readonly recordId?: string;
    readonly metadata?: Record<string, unknown>;
}
export interface MemoryEmbeddingResult {
    readonly vector: Float32Array | readonly number[];
    readonly dimensions: number;
    readonly modelId?: string;
    readonly metadata?: Record<string, unknown>;
}
export interface MemoryEmbeddingProviderStatus {
    readonly id: string;
    readonly label: string;
    readonly state: MemoryEmbeddingProviderState;
    readonly dimensions: number;
    readonly configured: boolean;
    readonly deterministic?: boolean;
    readonly detail?: string;
    readonly metadata: Record<string, unknown>;
}
export interface MemoryEmbeddingProvider {
    readonly id: string;
    readonly label: string;
    readonly dimensions: number;
    readonly deterministic?: boolean;
    readonly local?: boolean;
    embedSync?(request: MemoryEmbeddingRequest): MemoryEmbeddingResult;
    embed?(request: MemoryEmbeddingRequest): Promise<MemoryEmbeddingResult>;
    status?(): MemoryEmbeddingProviderStatus | Promise<MemoryEmbeddingProviderStatus>;
}
export interface MemoryEmbeddingDoctorReport {
    readonly activeProviderId: string;
    readonly providers: readonly MemoryEmbeddingProviderStatus[];
    readonly asyncProviders: readonly string[];
    readonly syncProviders: readonly string[];
    readonly warnings: readonly string[];
}
export interface MemoryEmbeddingProviderRegistryOptions {
    readonly configManager: ConfigManager;
}
export declare function embedMemoryText(text: string, dims?: number): Float32Array;
export declare function normalizeMemoryEmbeddingVector(vector: Float32Array | readonly number[], dimensions: number): Float32Array;
export declare class MemoryEmbeddingProviderRegistry {
    private readonly providers;
    private activeProviderId;
    private readonly configManager;
    constructor(options: MemoryEmbeddingProviderRegistryOptions);
    register(provider: MemoryEmbeddingProvider, options?: {
        readonly replace?: boolean;
        readonly makeDefault?: boolean;
    }): () => void;
    unregister(id: string): boolean;
    setDefaultProvider(id: string): void;
    getDefaultProvider(): MemoryEmbeddingProvider;
    get(id: string): MemoryEmbeddingProvider | null;
    list(): MemoryEmbeddingProvider[];
    embedSync(request: MemoryEmbeddingRequest): MemoryEmbeddingResult;
    embedAsync(request: MemoryEmbeddingRequest): Promise<MemoryEmbeddingResult>;
    status(): Promise<MemoryEmbeddingProviderStatus[]>;
    doctor(): Promise<MemoryEmbeddingDoctorReport>;
}
export declare const HASHED_MEMORY_EMBEDDING_PROVIDER: MemoryEmbeddingProvider;
//# sourceMappingURL=memory-embeddings.d.ts.map