import type { TemplateResult } from '@miurajs/miura-render'; export type ResourceState = 'idle' | 'pending' | 'resolved' | 'rejected'; export type ResourceKeyPart = string | number | boolean; export type ResourceKey = string | readonly ResourceKeyPart[]; export interface ResourceViewOptions { idle?: () => R; pending?: () => R; ok?: (value: T) => R; error?: (error: unknown) => R; } export interface Resource { readonly state: ResourceState; readonly loading: boolean; readonly refreshing: boolean; readonly value?: T; readonly data?: T; readonly error?: unknown; readonly promise?: Promise | null; readonly key?: string; refresh(options?: { force?: boolean; }): Promise; invalidate(): void; hydrate(value: T): void; rekey(key?: ResourceKey): void; view(options: ResourceViewOptions): R | undefined; } export interface ResourceOptions { auto?: boolean; key?: ResourceKey; staleWhileRevalidate?: boolean; staleTime?: number; cacheTime?: number; } export declare function resourceKey(...parts: readonly ResourceKeyPart[]): string; export declare function clearResourceCache(): void; export declare function invalidateResource(key: ResourceKey): void; export declare function invalidateResourceNamespace(namespace: string): void; export declare function hasResourceCache(key: ResourceKey): boolean; export declare function createResource(loader: () => Promise | T, onChange: () => void, options?: ResourceOptions): Resource; //# sourceMappingURL=resource.d.ts.map