import { IconizzaAPIModule } from '../modules.js'; import { IconizzaJSON } from '@iconizza/types'; import '@iconizza/api-redundancy'; /** * Callback for API delay */ type IconizzaMockAPIDelayDoneCallback = () => void; type IconizzaMockAPIDelayCallback = (next: IconizzaMockAPIDelayDoneCallback) => void; /** * Fake API result */ interface IconizzaMockAPIBase { response: number | IconizzaJSON | Record; delay?: number | IconizzaMockAPIDelayCallback; } interface IconizzaMockIconsAPI extends IconizzaMockAPIBase { type: 'icons'; provider: string; prefix: string; icons?: string | string[]; response: number | IconizzaJSON; } interface IconizzaMockCustomAPI extends IconizzaMockAPIBase { type: 'custom'; provider: string; uri: string; response: number | Record; } interface IconizzaMockCustomHostAPI extends IconizzaMockAPIBase { type: 'host'; host: string; uri: string; response: number | Record; } type IconizzaMockAPI = IconizzaMockIconsAPI | IconizzaMockCustomAPI | IconizzaMockCustomHostAPI; /** * Fake API storage for icons * * [provider][prefix] = list of entries */ declare const iconsStorage: Record>; /** * Fake API storage for custom queries * * [provider][uri] = response */ declare const customProviderStorage: Record>; /** * Fake API storage for custom queries * * [host][uri] = response */ declare const customHostStorage: Record>; /** * Set data for mocking API */ declare function mockAPIData(data: IconizzaMockAPI): void; /** * Return API module */ declare const mockAPIModule: IconizzaAPIModule; export { IconizzaMockAPI, IconizzaMockAPIDelayCallback, IconizzaMockAPIDelayDoneCallback, IconizzaMockCustomAPI, IconizzaMockCustomHostAPI, IconizzaMockIconsAPI, customHostStorage, customProviderStorage, iconsStorage, mockAPIData, mockAPIModule };