import React from "react"; import { type UploadResolver } from "../hooks/useUploadBlobUrl"; export interface ItemIconProps { /** * Stored icon reference. Either a literal URL, a `custom:` * marker (fetched through the auth-aware transport), or null/empty * to fall back to the favicon proxy. */ iconUrl?: string | null; /** Site URL the favicon proxy derives a public URL from. */ siteUrl?: string | null; /** Tile size in pixels (square). Defaults to 40. */ size?: number; /** Inner image size. Defaults to roughly 60% of `size`. */ imageSize?: number; /** Tile corner radius. Defaults to 25% of `size`. */ borderRadius?: number; /** Tile background override. Defaults to the secondary surface. */ background?: string; /** Globe-glyph color override. Defaults to muted-foreground. */ fallbackColor?: string; /** Favicon proxy path on the configured API server. Defaults to `/favicon`. */ faviconPath?: string; /** Upload-fetch path prefix. Defaults to `/uploads`. */ uploadsPath?: string; /** * Resolve a `custom:` reference yourself instead of letting this * component fetch it. * * For a consumer whose uploads are not behind `apiFetch` at all — vault's * device-only vaults keep them in on-device SQLite, with no server to ask. * Without this, such a consumer has to either fork the component or * pre-resolve the reference into a `data:` URI and pass it as `iconUrl`, * which works by accident (anything that is not `custom:` is treated as a * plain URL) and hides the intent. * * Return `null` for an id that does not resolve; the fallback glyph is drawn, * exactly as for a fetch that fails. */ resolveUpload?: UploadResolver; } /** * Per-item icon: shows the custom upload, falls back to the favicon * proxy, then to a generic globe glyph on a tile-toned square. Shared * between RN clients (mobile) and RN-Web (extension popup). */ export declare const ItemIcon: React.NamedExoticComponent; //# sourceMappingURL=item-icon.d.ts.map