/** * Lemma API v2 — Shared error types (Lane 0) * * Every failure that crosses the /v2 boundary is a LemmaApiError with a stable * `code`, never a raw exception or a JS stack. Codes are contract — SDKs and * clients branch on them, so they must not change across releases. */ /** Stable, machine-readable error codes exposed by the /v2 surface. */ export type LemmaErrorCode = 'unauthenticated' | 'invalid_request' | 'quota_exceeded' | 'not_found' | 'forbidden' | 'rate_limited' | 'not_implemented' | 'internal'; /** * The single error type that crosses the API boundary. Carries a stable code, a * human message and — where it does not leak internals — the offending field. */ export declare class LemmaApiError extends Error { readonly code: LemmaErrorCode; readonly status: number; /** Offending field name, when the error is a validation failure. */ readonly field?: string; /** Details destined for logs only, never for the client response. */ readonly internal?: unknown; constructor(opts: { code: LemmaErrorCode; status: number; message: string; field?: string; internal?: unknown; }); toJSON(): Record; } /** * Helper raising the "not implemented yet" signal. Lane 0 generates stubs for * every lane file so the project compiles in any worktree; invoking a stub at * runtime must never look like a real success, and must name the responsible * lane so the integration chat can route the work. */ export declare class NotImplementedError extends Error { readonly lane: string; constructor(lane: string); } //# sourceMappingURL=errors.d.ts.map