export type NativeSqliteErrorKind = "architecture-mismatch" | "abi-mismatch" | "missing-binding" | "toolchain-build-failed" | "native-load-failed" | "unknown";
export type NodeRuntimeIdentity = {
    execPath: string;
    version: string;
    arch: string;
    platform: NodeJS.Platform;
    modules: string;
};
export type ArchMismatchRemediation = {
    code: "runtime-host-arch-mismatch";
    message: string;
    remediationCommand: string;
};
export type NativeSqliteErrorClassification = {
    kind: NativeSqliteErrorKind;
    rebuildRecommended: boolean;
    architecture?: {
        have?: string;
        need?: string;
    };
};
export declare function getCurrentNodeRuntimeIdentity(): NodeRuntimeIdentity;
export declare function formatNodeRuntimeIdentity(identity?: NodeRuntimeIdentity): string;
export declare function classifyNativeSqliteErrorMessage(message: string): NativeSqliteErrorClassification;
/**
 * Structured remediation when better-sqlite3 fails at load time (dlopen / arch mismatch).
 * Prefer this over surfacing raw Node dlopen stacks to agents running `wk run`.
 */
export declare function formatArchMismatchRemediation(cause: unknown, identity?: NodeRuntimeIdentity): ArchMismatchRemediation;
export declare function throwNativeSqliteLoadError(cause: unknown): never;
export declare function nativeSqliteRecoveryHint(classification: NativeSqliteErrorClassification, identity?: NodeRuntimeIdentity): string;
