import type { ParsedCitation } from './parseCitationsFromContent'; /** * Broad source category used by chat citation chips. * * @private utility type of `` citation rendering */ export type CitationSourceKind = 'archive' | 'audio' | 'code' | 'document' | 'file' | 'image' | 'json' | 'plain-text' | 'presentation' | 'spreadsheet' | 'table' | 'video' | 'website'; /** * Image subtype when the citation source carries enough information to identify it. * * @private utility type of `` citation rendering */ export type CitationImageFormat = 'avif' | 'gif' | 'image' | 'jpeg' | 'png' | 'svg' | 'webp'; /** * Render-ready metadata for one citation source. * * @private utility type of `` citation rendering */ export type CitationSourceDisplay = { /** * Broad source category. */ readonly kind: CitationSourceKind; /** * Human-readable fallback label used before optional host metadata resolution. */ readonly label: string; /** * Best known HTTP(S) target for previews and URL snippets. */ readonly targetUrl?: string; /** * Image URL that can be rendered as a thumbnail. */ readonly thumbnailUrl?: string; /** * Lower-cased file extension when one is known. */ readonly extension?: string; /** * Image subtype when known. */ readonly imageFormat?: CitationImageFormat; }; /** * Internal source signature before final labels/preview URLs are resolved. * * @private utility type of `` citation rendering */ export type CitationSourceSignature = { /** * Broad source category. */ readonly kind: CitationSourceKind; /** * Image subtype when known. */ readonly imageFormat?: CitationImageFormat; }; /** * Resolves render-ready source metadata for one citation. * * @param citation - Citation metadata from a rendered chat message. * @returns Display label, source category, and optional preview URLs. * * @private utility of `` citation rendering */ export declare function resolveCitationSourceDisplay(citation: ParsedCitation): CitationSourceDisplay; /** * Returns whether the provided value is a valid HTTP(S) URL. * * @param value - Candidate string to inspect. * @returns True when the value parses as an HTTP or HTTPS URL. * * @private utility of `` citation rendering */ export declare function isCitationSourceUrl(value: string): boolean; /** * Determines whether a citation should be displayed as a text snippet instead of a file/URL. * * @param citation - Parsed citation metadata. * @returns True when the citation looks like inline text instead of a document or URL. * * @private utility of `` citation rendering */ export declare function isPlainTextCitationSource(citation: ParsedCitation): boolean; /** * Creates a readable fallback label from a citation source when no title metadata is available. * * @param source - Raw citation source value. * @returns Human-friendly source label. * * @private utility of `` citation rendering */ export declare function createReadableCitationSourceDisplayLabel(source: string): string; /** * Creates a compact host/path label for URL-backed file citations. * * @param rawUrl - Raw URL value. * @returns URL snippet such as `github.com/.../source.json`, or null for invalid URLs. * * @private utility of `` citation rendering */ export declare function createCitationUrlSnippet(rawUrl: string): string | null; /** * Resolves a source signature from a file extension. * * @param extension - Lower- or mixed-case file extension. * @returns Source signature or null for unknown extensions. * * @private utility of `` citation rendering */ export declare function resolveCitationSourceSignatureFromFileExtension(extension: string | null | undefined): CitationSourceSignature | null; /** * Resolves a source signature from an HTTP content type. * * @param contentType - Raw Content-Type header value. * @returns Source signature or null when the content type is not specific enough. * * @private utility of `` citation rendering */ export declare function resolveCitationSourceSignatureFromContentType(contentType: string): CitationSourceSignature | null; /** * Resolves a source signature from decoded source text. * * @param source - Raw citation source text. * @returns Source signature for JSON/binary-like source text, otherwise null. * * @private utility of `` citation rendering */ export declare function resolveRawCitationSourceSignature(source: string): CitationSourceSignature | null; /** * Resolves a source signature from response bytes. * * @param bytes - Leading response bytes. * @returns Source signature for known binary formats, otherwise null. * * @private utility of `` citation rendering */ export declare function resolveCitationSourceSignatureFromBytes(bytes: Uint8Array): CitationSourceSignature | null; /** * Creates a generic fallback label for a source signature. * * @param signature - Source signature. * @returns Human-readable fallback label. * * @private utility of `` citation rendering */ export declare function createCitationSourceSignatureFallbackLabel(signature: CitationSourceSignature): string;