import type { RemoteFailure } from "./shared.js"; import { type Effect } from "effect"; export type RemoteResourceEffect = Effect.Effect> & { readonly current: Output | undefined; readonly error: unknown; readonly loading: boolean; readonly ready: boolean; }; type RemoteQueryResourceEffect = RemoteResourceEffect & { readonly refresh: () => Effect.Effect; readonly set: (value: Output) => void; readonly withOverride: (update: (current: Output) => Output) => unknown; }; export type NativeRemoteResource = { readonly current?: Output; readonly error?: unknown; readonly loading?: boolean; readonly ready?: boolean; }; export declare function is_remote_resource(resource: unknown): resource is NativeRemoteResource; export declare function attach_remote_resource_getters(resource: unknown, effect: RemoteResourceEffect): void; export declare function attach_failed_remote_resource_getters(error: unknown, effect: RemoteResourceEffect): void; export declare function attach_failed_remote_query_resource(error: unknown, effect: RemoteQueryResourceEffect): void; export declare function normalize_remote_resource_error(error: unknown): unknown; export {};