import { TokenCountResult, ChunkOptions, ValidationResult, OptimizationResult, SupportedModel } from './types';
/**
 * Get accurate token count using OpenRouter API (async)
 */
export declare function getTokenCount(text: string, model?: SupportedModel): Promise<TokenCountResult>;
/**
 * Get detailed token count with native tokenizer information
 */
export declare function getDetailedTokenCount(text: string, model?: SupportedModel): Promise<TokenCountResult & {
    generationId?: string;
    nativeTokens?: number;
}>;
/**
 * Compare estimation accuracy against real API tokenization
 */
export declare function compareTokenCounts(text: string, model?: SupportedModel): Promise<{
    estimated: TokenCountResult;
    actual: TokenCountResult;
    difference: number;
    accuracy: number;
}>;
/**
 * Quick token estimation utility function (synchronous fallback)
 */
export declare function estimateTokens(text: string, model?: SupportedModel): TokenCountResult;
/**
 * Quick text chunking utility function
 */
export declare function chunkText(text: string, options: ChunkOptions): string[];
/**
 * Quick prompt validation utility function
 */
export declare function validatePrompt(prompt: string, model?: SupportedModel): ValidationResult;
/**
 * Quick prompt optimization utility function
 */
export declare function optimizePrompt(prompt: string, model?: SupportedModel): OptimizationResult;
/**
 * Check if text fits in a specific model's context window
 */
export declare function fitsInModel(text: string, model: SupportedModel): boolean;
/**
 * Get the best model recommendation for a given text
 */
export declare function recommendModel(text: string): {
    model: SupportedModel;
    reason: string;
};
/**
 * Calculate the cost of processing text with a specific model
 */
export declare function calculateCost(text: string, model: SupportedModel): number;
/**
 * Get a quality score for a prompt (0-100)
 */
export declare function getPromptQuality(prompt: string, model?: SupportedModel): number;
/**
 * Chunk text specifically for a model with optimal settings
 */
export declare function chunkForModel(text: string, model: SupportedModel, overlapPercent?: number): string[];
/**
 * Optimize prompt to fit within a specific token limit
 */
export declare function optimizeToTarget(prompt: string, targetTokens: number, model?: SupportedModel): OptimizationResult;
/**
 * Get comprehensive analysis of a prompt
 */
export declare function analyzePrompt(prompt: string, model?: SupportedModel): {
    tokens: TokenCountResult;
    validation: ValidationResult;
    quality: number;
    recommendation: {
        model: SupportedModel;
        reason: string;
    };
    fitsInModel: boolean;
    cost: number;
};
//# sourceMappingURL=utils.d.ts.map