import { Url, UrlAccepted } from '@ef-carbon/primitive'; export interface IResource { readonly url: Url; readonly loading: boolean; readonly loaded: boolean; readonly unloaded: boolean; readonly error: Error | undefined; unload(): Promise; } export default IResource; export interface IOptions { url: UrlAccepted; onLoad?(resource: T): void; onError?(error: Error, resource: T): void; onProgress?(percentage: number): void; }