/** * Favicon-resolution helpers shared between mobile + extension. * * Items in the vault (and analogues in other Entropy apps) store an * `icon_url` reference that may be: * * * a `custom:` marker for a server-side upload — resolved * at render time through the auth-aware transport; * * an arbitrary public URL (logo CDN, etc.) — used verbatim; * * `null` / empty — the renderer derives a favicon URL from the * item's site URL via the server's favicon-proxy endpoint. */ /** * Build the favicon-proxy URL for a site, or return `null` when no * proxy URL can be built. The caller falls back to its default * placeholder when null is returned. */ export declare function buildFaviconUrl(siteUrl: string | null | undefined, faviconPath?: string): string | null; /** Wrap a raw upload id as a `custom:` reference for storage. */ export declare function customIconRef(uploadId: string): string; /** True if the stored icon reference points at a custom upload. */ export declare function isCustomIconRef(iconRef: string | null | undefined): boolean; /** Extract the upload id from a `custom:` reference. */ export declare function customIconId(iconRef: string | null | undefined): string | null; /** Tagged result describing how the renderer should source an item's icon. */ export type ResolvedIcon = { kind: "upload"; uploadId: string; } | { kind: "url"; uri: string; } | { kind: "none"; }; /** * Pick the right source for an item's icon. Returning a tagged variant * (rather than always coercing to a URL string) lets the renderer * handle the auth-required upload case differently from public-favicon * URLs without sniffing path patterns at the call site. */ export declare function resolveIcon(opts: { iconUrl?: string | null; siteUrl?: string | null; faviconPath?: string; }): ResolvedIcon; //# sourceMappingURL=favicon.d.ts.map