export type LazyServiceState = "idle" | "initializing" | "ready" | "failed" | "disabled" | "disposed"; export interface LazyServiceStatus { id: string; state: LazyServiceState; trigger?: string; initializedAt?: number; error?: unknown; } export interface LazyService { status(): LazyServiceStatus; peek(): T | undefined; get(trigger: string): Promise; prewarm(trigger?: string): Promise; dispose(): Promise; } export interface LazyServiceOptions { id: string; enabled?: () => boolean; initialize: (ctx: { trigger: string; signal: AbortSignal; }) => Promise<{ value: T; dispose?: () => void | Promise; }>; } export declare class LazyServiceDisabledError extends Error { readonly id: string; constructor(id: string); } export declare class LazyServiceFailedError extends Error { readonly id: string; readonly cause: unknown; constructor(id: string, cause: unknown); } export declare class LazyServiceDisposedError extends Error { readonly id: string; constructor(id: string); } export declare class LazyServiceReentrantDisposeError extends Error { readonly id: string; constructor(id: string); } export declare function createLazyService(options: LazyServiceOptions): LazyService;