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;