import type { ParsedCitation } from './parseCitationsFromContent';
/**
 * Broad source category used by chat citation chips.
 *
 * @private utility type of `<Chat/>` 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 `<Chat/>` citation rendering
 */
export type CitationImageFormat = 'avif' | 'gif' | 'image' | 'jpeg' | 'png' | 'svg' | 'webp';
/**
 * Render-ready metadata for one citation source.
 *
 * @private utility type of `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` 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 `<Chat/>` citation rendering
 */
export declare function createCitationSourceSignatureFallbackLabel(signature: CitationSourceSignature): string;
