import type { OutputLanguage } from "../language.js";
import type { SummaryLength } from "../shared/contracts.js";
import { SUMMARY_LENGTH_TO_TOKENS } from "./summary-lengths.js";
export { SUMMARY_LENGTH_TO_TOKENS };
export type SummaryLengthTarget = SummaryLength | {
    maxCharacters: number;
};
export declare function pickSummaryLengthForCharacters(maxCharacters: number): SummaryLength;
export declare function estimateMaxCompletionTokensForCharacters(maxCharacters: number): number;
export type ShareContextEntry = {
    author: string;
    handle?: string | null;
    text: string;
    likeCount?: number | null;
    reshareCount?: number | null;
    replyCount?: number | null;
    timestamp?: string | null;
};
export declare function buildLinkSummaryPrompt({ url, title, siteName, description, content, truncated, hasTranscript, hasTranscriptTimestamps, timestampLimitInstruction, slides, outputLanguage, summaryLength, shares, promptOverride, lengthInstruction, languageInstruction, }: {
    url: string;
    title: string | null;
    siteName: string | null;
    description: string | null;
    content: string;
    truncated: boolean;
    hasTranscript: boolean;
    hasTranscriptTimestamps?: boolean;
    timestampLimitInstruction?: string | null;
    slides?: {
        count: number;
        text: string;
    } | null;
    summaryLength: SummaryLengthTarget;
    outputLanguage?: OutputLanguage | null;
    shares: ShareContextEntry[];
    promptOverride?: string | null;
    lengthInstruction?: string | null;
    languageInstruction?: string | null;
}): string;
